Re: [RFC PATCH 0/5] Enable use of Solid State Hybrid Drives

Jens Axboe
2014-10-30T14:15:24Z

On 2014-10-30 01:21, Dave Chinner wrote:
> On Wed, Oct 29, 2014 at 03:24:11PM -0700, Dan Williams wrote:
>> On Wed, Oct 29, 2014 at 3:09 PM, Dave Chinner <david@fromorbit.com> wrote:
>>> On Wed, Oct 29, 2014 at 03:10:51PM -0600, Jens Axboe wrote:
>>>> As for the fs accessing this, the io nice fields are readily exposed
>>>> through the ->bi_rw setting. So while the above example uses ionice to
>>>> set a task io priority (that a bio will then inherit), nothing prevents
>>>> you from passing it in directly from the kernel.
>>>
>>> Right, but now the filesystem needs to provide that on a per-inode
>>> basis, not from the task structure as the task that is submitting
>>> the bio is not necesarily the task doing the read/write syscall.
>>>
>>> e.g. the write case above doesn't actually inherit the task priority
>>> at the bio level at all because the IO is being dispatched by a
>>> background flusher thread, not the ioniced task calling write(2).
>>
>> When the ioniced task calling write(2) inserts the page into the page
>> cache then the current priority is recorded in the struct page. The
>
> It does? Can you point me to where the page cache code does this,
> because I've clearly missed something important go by in the past
> few months...

I was puzzled too, but then I realized that Dan is referring to patch
4/5 in the series...

--
Jens Axboe