Re: [PATCH] hugetlbfs read() support

Nick Piggin
2007-07-20T04:47:31Z

Nishanth Aravamudan wrote:
> On 19.07.2007 [09:58:50 -0700], Andrew Morton wrote:
>
>>On Thu, 19 Jul 2007 08:51:49 -0700 Badari Pulavarty <pbadari@us.ibm.com> wrote:
>>
>>
>>>>>+ }
>>>>>+
>>>>>+ offset += ret;
>>>>>+ retval += ret;
>>>>>+ len -= ret;
>>>>>+ index += offset >> HPAGE_SHIFT;
>>>>>+ offset &= ~HPAGE_MASK;
>>>>>+
>>>>>+ page_cache_release(page);
>>>>>+ if (ret == nr && len)
>>>>>+ continue;
>>>>>+ goto out;
>>>>>+ }
>>>>>+out:
>>>>>+ return retval;
>>>>>+}
>>>>
>>>>This code doesn't have all the ghastly tricks which we deploy to
>>>>handle concurrent truncate.
>>>
>>>Do I need to ? Baaahh!! I don't want to deal with them.
>>
>>Nick, can you think of any serious consequences of a read/truncate
>>race in there? I can't..
>>
>>
>>>All I want is a simple read() to get my oprofile working. Please
>>>advise.
>>
>>Did you consider changing oprofile userspace to read the executable
>>with mmap?
>
>
> It's not actually oprofile's code, though, it's libbfd (used by
> oprofile). And it works fine (presumably) for other binaries.

So... what's the problem with changing it? The fact that it is a
library doesn't really make a difference except that you'll also
help everyone else who links with it.

It won't break backwards compatibility, and it will work on older
kernels...

--
SUSE Labs, Novell Inc.