All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Xu <davidxu06@gmail.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: kvm <kvm@vger.kernel.org>
Subject: Re: reduce networking latency
Date: Wed, 22 Oct 2014 16:35:07 -0400	[thread overview]
Message-ID: <CAGjowiRFZgfcBu7W4wjy0prc8Qn_cXhL0Fy=x86EovM+EmG_1A@mail.gmail.com> (raw)
In-Reply-To: <CAGjowiRR_KawP5-ZxnYjw6Y+GTwfhmvAs15mKj2kT=XXG1OSbQ@mail.gmail.com>

2014-10-15 14:30 GMT-04:00 David Xu <davidxu06@gmail.com>:
> 2014-09-29 5:04 GMT-04:00 Michael S. Tsirkin <mst@redhat.com>:
>> On Wed, Sep 24, 2014 at 02:40:53PM -0400, David Xu wrote:
>>> Hi Michael,
>>>
>>> I found this interesting project from KVM TODO website:
>>>
>>> allow handling short packets from softirq or VCPU context
>>>  Plan:
>>>    We are going through the scheduler 3 times
>>>    (could be up to 5 if softirqd is involved)
>>>    Consider RX: host irq -> io thread -> VCPU thread ->
>>>    guest irq -> guest thread.
>>>    This adds a lot of latency.
>>>    We can cut it by some 1.5x if we do a bit of work
>>>    either in the VCPU or softirq context.
>>>  Testing: netperf TCP RR - should be improved drastically
>>>           netperf TCP STREAM guest to host - no regression
>>>
>>> Would you mind saying more about the work either in the vCPU or
>>> softirq context?
>>
>> For TX, we might be able to execute it directly from VCPU context.
>> For RX, from softirq context.
>>

Do you mean for RX, we directly put data to a shared buffer accessed
by guest VM bypassing the IO thread? For TX, in vCPU context network
data is added to the shared buffer and kick host IRQ to send them?

>>> Why it is only for short packets handling?
>>
>> That's just one idea to avoid doing too much work like this.
>>
>> Doing too much work in VCPU context would break pipelining,
>> likely degrading stream performance.
>> Work in softirq context is not accounted against the correct
>> cgroups, doing a lot of work there will mean guest can steal
>> CPU from other guests.
>>
>>> Thanks a
>>> lot!
>>>
>>>
>>> Regards,
>>>
>>> Cong

  reply	other threads:[~2014-10-22 20:35 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-24 18:40 reduce networking latency David Xu
2014-09-29  9:04 ` Michael S. Tsirkin
2014-10-15 18:30   ` David Xu
2014-10-22 20:35     ` David Xu [this message]
2014-10-23  4:15       ` Michael S. Tsirkin
  -- strict thread matches above, loose matches on Subject: below --
2014-06-10 15:29 David Xu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAGjowiRFZgfcBu7W4wjy0prc8Qn_cXhL0Fy=x86EovM+EmG_1A@mail.gmail.com' \
    --to=davidxu06@gmail.com \
    --cc=kvm@vger.kernel.org \
    --cc=mst@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.