Re: [dm-devel] Re: [RFC][PATCH 0/10] I/O context inheritance

From: Hirokazu Takahashi
Date: Tue Apr 22 2008 - 23:27:40 EST


Hi,

> > On Tue, Apr 22 2008, Hirokazu Takahashi wrote:
> > > Hi,
> > >
> > > Sorry, these patches are for linux-2.6.25.
> > >
> > > > This series of patches make the block I/O layer and the I/O schedulers
> > > > be able to determine the right io_context of every I/O.
> > > >
> > > > The current implementation of the block I/O layer and the I/O schedulers
> > > > assume that the current process is the one which issued the given I/O,
> > > > then use the io_context of this process to control the I/O.
> > > > But this assumption isn't quite right because several kernel threads
> > > > will handle I/O requests on behalf of the processes which originated them.
> > > > This often happens when you want to use device mapper modules.
> > > >
> > > > The patches make every bio has a pointer to an io_context, which will
> > > > be set when it is allocated or cloned. So it makes it possible to find
> > > > the right io_context from any bio at any place.
> > > >
> > > > I'm waiting for your comments.
> >
> > Can you give a brief summary of what you need this stuff for?
> >
>
> I am not sure if this the intended application, but I have been
> looking at supporting ionice over software-raid and this series seems
> like a necessary first step.

Yes, the intention is to make ionice be able to work correctly over
device mapper modules such as software-raid and the multipath driver.
This mechanism is needed since quite a few device mapper modules have
kernel threads, including workqueues, handle I/O requests.

And I also have a plan to use this new feature for block I/O bandwidth
control based on cgroup with some enhancement. With this feature, we
can also trace the iocontext of the process or cgroup which made
a certain page dirtied.


Thank you,
Hirokazu Takahashi.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/