Am Sonntag, 7. Oktober 2012 schrieb Alex Lyakas:

> On Sun, Oct 7, 2012 at 12:53 PM, Martin Steigerwald 
<mar...@lichtvoll.de> wrote:
> > Am Sonntag, 7. Oktober 2012 schrieb Alex Lyakas:
[…]
> >> On Sat, Oct 6, 2012 at 11:40 AM, Martin Steigerwald
> > 
> > <mar...@lichtvoll.de> wrote:
> >> > Am Donnerstag, 4. Oktober 2012 schrieb Alex Lyakas:
> >> >> Hi Jan,
> >> >> as I promised, here is some code for you to look at.
> >> >> 
> >> >> First I will describe the approach in general.
> >> >> 
> >> >> # Get rid of the pipe. Instead, user-space passes a buffer and
> >> >> kernel fills the specified user-space buffer with commands.
> >> >> # When the buffer is full, kernel stops generating commands and
> >> >> returns a checkpoint to the user-space.
> >> > 
> >> > Can it just fill a second buffer while userspace command handles
> >> > the first?
> >> 
> >> No, at this point kernel receives only one buffer and fills it up.
> >> Can you pls elaborate more what improvement you have in mind? Like
> >> user-space sending a list of buffers to the kernel in one shot? Or
> >> that user-space handles kind of producer-consumer pool of buffers
> >> and works on full buffers while kernel fills the empty ones (this,
> >> of course, can work).
> >> 
> >> In general, my direction was to make the kernel call stateless,
> >> which makes the user-space part more flexible.
> > 
> > Hmmm, okay. So the kernel has only one buffer.
> > 
> > Well I had some kind of double buffering in mind. The kernel fills
> > one buffer while the userspace application handles the other buffer.
> > Then kernel and userspace swap buffers.
> > 
> > Just an idea of mine. I do not do kernel development, so I do not
> > know whether its feasible. Was happy enough that I wrote a C program
> > that uses some kernel functions some weeks ago that actually worked
> > :)
> > 
> > So would using two buffers and swapping them make sense?

> Martin,
> I apologize for misspelling your name.

No problem.

> Yes, user-space can handle a buffer pool of any number of buffers,
> like one thread fetching a free buffer, handling it to the kernel,
> then putting it on some ready-buffer queue and signalling to a another
> thread that fetches ready (full) buffers and handles them. After it is
> done with the buffer, it puts it back on a free-buffer queue and
> signals the first thread. This is exactly producer-consumer.

Ah, so the kernel does not need to have anything to do with it. Nice.

Thanks,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to