[dm-devel] [PATCH 1/2] dm-ioband: I/O bandwidth controller v1.2.0: Source code and patch

Ryo Tsuruta ryov at valinux.co.jp
Thu Jul 10 13:36:04 UTC 2008


Hi Xinwei,

> > +static void prevent_burst_bios(struct ioband_group *gp, struct bio *bio)
> > +{
> > +       struct ioband_device *dp = gp->c_banddev;
> > +
> > +       if (current->flags & PF_KTHREAD) {
> > +               /*
> > +                * Kernel threads shouldn't be blocked easily since each of
> > +                * them may handle BIOs for several groups on several
> > +                * partitions.
> > +                */
>   Might be a stupid question, but doesn't that make more sense to just
> check if current->mm == NULL ?
>   I think PF_BORROWED_MM is only used when kernel threads doing AIO
> for user process, and that should be counted as normal user processes.
> Am I miss anything ?

This function makes processes issuing I/O blocked when the number of
in-flight I/Os exceeds a certain threshold. The purpose is to prevent
I/O requests from issuing unlimitedly, not for counting the number of
I/Os.
But kernel threads should not be blocked easily since each of them may
handles BIOs for several group on several partitions. The AIO kernel
threads also handle I/Os for several groups, that's why they should
not be blocked easily.

Thanks,
Ryo Tsuruta




More information about the dm-devel mailing list