Re: [Bug #15202] lockdep warning during elevator_switch

From: David Rientjes
Date: Sun Feb 07 2010 - 19:51:34 EST


On Sun, 7 Feb 2010, Hugh Dickins wrote:

> > This message has been generated automatically as a part of a summary report
> > of recent regressions.
> >
> > The following bug entry is on the current list of known regressions
> > from 2.6.32. Please verify if it still should be listed and let the tracking team
> > know (either way).
> >
> >
> > Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=15202
> > Subject : lockdep warning during elevator_switch
> > Submitter : Hugh Dickins <hugh.dickins@xxxxxxxxxxxxx>
> > Date : 2010-01-31 23:55 (8 days old)
> > References : http://marc.info/?l=linux-kernel&m=126498212613051&w=4
>
> Yes, still so in 2.6.33-rc7.
>

This type of lock dependency is always going to exist whenever a write to
a sysfs file causes the kernel to remove its dirent. In this case,
writing to /sys/devices/block/xxx/queue/scheduler takes sd->dep_map and
sd->parent->dep_map via sysfs_get_active_two() to pin both via
sysfs_write_file(). The call to kobject_del() removes its directory
from the hierarchy which takes sd->dep_map in sysfs_deactivate() because
of 846f99749a. Eric, do we need to preempt the rwsem from being acquired
here when the dirent is already pinned because of a store to one of its
files?
--
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/