[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