All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin Steigerwald <Martin@lichtvoll.de>
To: linux-btrfs@vger.kernel.org
Cc: Alex Lyakas <alex.bolshoy.btrfs@gmail.com>
Subject: Re: btrfs send/receive review by vfs folks
Date: Sun, 7 Oct 2012 14:59:40 +0200	[thread overview]
Message-ID: <201210071459.40362.Martin@lichtvoll.de> (raw)
In-Reply-To: <CAHf9xvadjFfBXnVnBVMTuO4Cm62QMRwZD2c9KEANeLfW3Lkxug@mail.gmail.com>

Am Sonntag, 7. Oktober 2012 schrieb Alex Lyakas:

> On Sun, Oct 7, 2012 at 12:53 PM, Martin Steigerwald 
<Martin@lichtvoll.de> wrote:
> > Am Sonntag, 7. Oktober 2012 schrieb Alex Lyakas:
[…]
> >> On Sat, Oct 6, 2012 at 11:40 AM, Martin Steigerwald
> > 
> > <Martin@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

  reply	other threads:[~2012-10-07 12:59 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-01 12:09 btrfs send/receive review by vfs folks Alexander Block
2012-09-24  9:13 ` Alex Lyakas
2012-09-24  9:27   ` Jan Schmidt
2012-09-27 19:36     ` Alex Lyakas
2012-10-04 15:59     ` Alex Lyakas
2012-10-06  9:40       ` Martin Steigerwald
2012-10-07 10:48         ` Alex Lyakas
2012-10-07 10:53           ` Martin Steigerwald
2012-10-07 11:08             ` Alex Lyakas
2012-10-07 12:59               ` Martin Steigerwald [this message]
2012-10-08  9:26       ` Jan Schmidt
2012-10-08 11:38         ` Alex Lyakas
2012-10-08 13:37           ` Jan Schmidt
2012-10-10 20:28             ` Alex Lyakas

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=201210071459.40362.Martin@lichtvoll.de \
    --to=martin@lichtvoll.de \
    --cc=alex.bolshoy.btrfs@gmail.com \
    --cc=linux-btrfs@vger.kernel.org \
    /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.