All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Avi Kivity <avi@redhat.com>
Cc: suparna@in.ibm.com, Zach Brown <zach.brown@oracle.com>,
	linux-aio@kvack.org, Jeff Moyer <jmoyer@redhat.com>,
	Anthony Liguori <aliguori@us.ibm.com>,
	linux-kernel@vger.kernel.org,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: kvm aio wishlist
Date: Tue, 25 Nov 2008 17:56:13 +0100	[thread overview]
Message-ID: <20081125165613.GI22504@elte.hu> (raw)
In-Reply-To: <492C2D11.2030308@redhat.com>


* Avi Kivity <avi@redhat.com> wrote:

> Ingo Molnar wrote:
>>   
>>> Perhaps a variant of syslet, that is kernel-only, and does:
>>>
>>> - always allocate a new kernel stack at io_submit() time, but not a   
>>> new thread
>>>     
>>
>> such a N:M threading design is a loss - sooner or later we arrive to a  
>> point where people actually start using it and then we want to  
>> load-balance and schedule these entities.
>>   
>
> It's only N:M as long as its nonblocking.  If it blocks it becomes 1:1  
> again.  If it doesn't, it's probably faster to do things on the same  
> cache as the caller.
>
>> So i'd suggest the kthread based async engine i wrote for syslets. It  
>> worked well and for kernel-only entities it schedules super-fast - it  
>> can do up to 20 million events per second on a 16-way box i'm testing  
>> on. The objections about syslets were not related to the scheduling of  
>> it but were mostly about the userspace API/ABI: you dont have to use  
>> that.
>
> I'd love to have something :)
>
> I guess any cache and latency considerations could be fixed if
> - we schedule a syslet for the first time when the thread that launched  
> it exits to userspace
> - we queue it on the current cpu's runqueue
>
> In that case, for the nonblocking case syslets and fibrils would 
> have very similar performance.

yes. Hence given that fibrills have various tradeoffs, we should do 
the syslet thread pool. The code is there and it works :)

	Ingo

      reply	other threads:[~2008-11-25 16:56 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <492B0CDD.7080000@redhat.com>
     [not found] ` <492B2348.9090008@oracle.com>
     [not found]   ` <492B2976.3010209@redhat.com>
     [not found]     ` <492B3912.3030707@oracle.com>
     [not found]       ` <492BC5CB.6000609@redhat.com>
2008-11-25 10:19         ` kvm aio wishlist Suparna Bhattacharya
2008-11-25 10:48           ` Avi Kivity
2008-11-25 14:59             ` Ingo Molnar
2008-11-25 15:10               ` Jens Axboe
2008-11-25 15:25                 ` Zach Brown
2008-11-25 15:57                   ` Ingo Molnar
2008-11-25 16:55                   ` Avi Kivity
2008-11-25 16:57                     ` Ingo Molnar
2008-11-25 16:51               ` Avi Kivity
2008-11-25 16:56                 ` Ingo Molnar [this message]

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=20081125165613.GI22504@elte.hu \
    --to=mingo@elte.hu \
    --cc=a.p.zijlstra@chello.nl \
    --cc=aliguori@us.ibm.com \
    --cc=avi@redhat.com \
    --cc=jmoyer@redhat.com \
    --cc=linux-aio@kvack.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=suparna@in.ibm.com \
    --cc=tglx@linutronix.de \
    --cc=zach.brown@oracle.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.