lkml.org 
[lkml]   [2000]   [Dec]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC] Generic deferred file writing
    Hi,

    On Sun, 31 Dec 2000, Linus Torvalds wrote:

    > cached_allocation = NULL;
    >
    > repeat:
    > spin_lock();
    > result = try_to_find_existing();
    > if (!result) {
    > if (!cached_allocation) {
    > spin_unlock();
    > cached_allocation = allocate_block();
    > goto repeat;
    > }
    > result = cached_allocation;
    > add_to_datastructures(result);
    > }
    > spin_unlock();
    > return result;
    >
    > This is quite standard, and Linux does it in many places. It doesn't have
    > to be complex or ugly.

    No problem with that.

    > Also, I don't see why you claim the current get_block() is recursive and
    > hard to use: it obviously isn't. If you look at the current ext2
    > get_block(), the way it protects most of its data structures is by the
    > super-block-global lock. That wouldn't work if your claims of recursive
    > invocation were true.

    I just rechecked that, but I don't see no superblock lock here, it uses
    the kernel_lock instead. Although Al could give the definitive answer for
    this, he wrote it. :)

    > The way the Linux MM works, if the lower levels need to do buffer
    > allocations, they will use GFP_BUFFER (which "bread()" does internally),
    > which will mean that the VM layer will _not_ call down recursively to
    > write stuff out while it's already trying to write something else. This is
    > exactly so that filesystems don't have to release and re-try if they don't
    > want to.
    >
    > In short, I don't see any of your arguments.

    Then I must have misunderstood Al. Al?
    If you were right here, I would see absolutely no reason for the current
    complexity. (Me is a bit confused here.)

    bye, Roman

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 12:52    [W:3.572 / U:0.460 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site