Re: [RFC PATCH 1/5] block, ioprio: include caching advice via ionice

Dan Williams
2014-10-29T21:08:03Z

On Wed, Oct 29, 2014 at 12:02 PM, Jeff Moyer <jmoyer@redhat.com> wrote:
> "Jason B. Akers" <jason.b.akers@intel.com> writes:
>
>> From: Dan Williams <dan.j.williams@intel.com>
>>
>> Steal one unused bit from the priority class and two bits from the
>> priority data, to implement a 3 bit cache-advice field. Similar to the
>> page cache advice from fadvise() these hints are meant to be consumed
>> by hybrid drives. Solid State Hyrbid-Drives, as defined by the SATA-IO
>> Specification, implement up to a 4-bit cache priority that can be
>> specified along with a FPDMA command.
>
> ionice is about setting an I/O scheduling class for a *process*. So,
> unless I've missed something, this does not seem like the right
> interface for passing I/O hints.
>
> You mention fadvise hints, which sounds like a good fit (and madvise
> would be equally interesting), but I don't see where you've wired them
> up in this patch set. Did I miss it?

It turns out we didn't need it. It's straightforward to add, but I
think "80%" of the benefit can be had by just having a per-thread
cache priority. It's more powerful to say "any page cache page this
thread touches, or any direct i/o this thread does, goes down the
stack at the given priority".