diff for duplicates of <1503002469.2615.13.camel@wdc.com> diff --git a/a/1.txt b/N1/1.txt index 51ac8c6..fbbfd13 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,36 +1,42 @@ -T24gVGh1LCAyMDE3LTA4LTE3IGF0IDE2OjMwIC0wNDAwLCBTdGV2ZW4gUm9zdGVkdCB3cm90ZToN -Cj4gT24gVGh1LCAxNyBBdWcgMjAxNyAxMjoyNDozOSAtMDQwMA0KPiBXYWltYW4gTG9uZyA8bG9u -Z21hbkByZWRoYXQuY29tPiB3cm90ZToNCj4gDQo+ID4gT24gMDgvMTcvMjAxNyAwOTozNCBBTSwg -U3RldmVuIFJvc3RlZHQgd3JvdGU6DQo+ID4gPiBPbiBXZWQsIDE2IEF1ZyAyMDE3IDE2OjQwOjQw -IC0wNDAwDQo+ID4gPiBXYWltYW4gTG9uZyA8bG9uZ21hbkByZWRoYXQuY29tPiB3cm90ZToNCj4g -PiA+ICANCj4gPiA+ID4gVGhlIGxvY2tkZXAgY29kZSBoYWQgcmVwb3J0ZWQgdGhlIGZvbGxvd2lu -ZyB1bnNhZmUgbG9ja2luZyBzY2VuYXJpbzoNCj4gPiA+ID4gDQo+ID4gPiA+ICAgICAgICBDUFUw -ICAgICAgICAgICAgICAgICAgICBDUFUxDQo+ID4gPiA+ICAgICAgICAtLS0tICAgICAgICAgICAg -ICAgICAgICAtLS0tDQo+ID4gPiA+ICAgbG9jayhzX2FjdGl2ZSMyMjgpOw0KPiA+ID4gPiAgICAg -ICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jaygmYmRldi0+YmRfbXV0ZXgvMSk7DQo+ID4g -PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NrKHNfYWN0aXZlIzIyOCk7DQo+ -ID4gPiA+ICAgbG9jaygmYmRldi0+YmRfbXV0ZXgpOyAgDQo+ID4gPiANCj4gPiA+IENhbiB5b3Ug -c2hvdyB0aGUgZXhhY3QgbG9jYXRpb25zIG9mIHRoZXNlIGxvY2tzLiBJIGhhdmUgbm8gaWRlYSB3 -aGVyZQ0KPiA+ID4gdGhpcyAic19hY3RpdmUiIGlzLiAgDQo+ID4gDQo+ID4gVGhlIHNfYWN0aXZl -IGlzbid0IGFuIGFjdHVhbCBsb2NrLiBJdCBpcyBhIHJlZmVyZW5jZSBjb3VudCAoa24tPmNvdW50 -KQ0KPiA+IG9uIHRoZSBzeXNmcyAoa2VybmZzKSBmaWxlLiBSZW1vdmFsIG9mIGEgc3lzZnMgZmls -ZSwgaG93ZXZlciwgcmVxdWlyZQ0KPiA+IGEgd2FpdCB1bnRpbCBhbGwgdGhlIHJlZmVyZW5jZXMg -YXJlIGdvbmUuIFRoZSByZWZlcmVuY2UgY291bnQgaXMNCj4gPiB0cmVhdGVkIGxpa2UgYSByd3Nl -bSB1c2luZyBsb2NrZGVwIGluc3RydW1lbnRhdGlvbiBjb2RlLg0KPiANCj4gV2hpY2gga2VybmVs -IGlzIHRoaXM/IEkgZG9uJ3Qgc2VlIGFueSBsb2NrZGVwIGFubm90YXRpb24gYXJvdW5kDQo+IGtu -LT5jb3VudCAoZG9pbmcgYSBnaXQgZ3JlcCwgSSBmaW5kIGl0IHJlZmVyZW5jZWQgaW4gZnMva2Vy -bmZzL2Rpci5jKQ0KDQpBcyBmYXIgYXMgSSBrbm93IHRoZSBzX2FjdGl2ZSBsb2NrZGVwIGFubm90 -YXRpb25zIHdlcmUgaW50cm9kdWNlZCBpbiAyMDA3DQp0aHJvdWdoIGNvbW1pdCAwYWI2NjA4OGM4 -NTUgKCJzeXNmczogaW1wbGVtZW50IHN5c2ZzX2RpcmVudCBhY3RpdmUgcmVmZXJlbmNlDQphbmQg -aW1tZWRpYXRlIGRpc2Nvbm5lY3QiKS4gVG9kYXkgdGhlc2UgYW5ub3RhdGlvbnMgZXhpc3QgaW4g -a2VybmZzOg0KJCBnaXQgZ3JlcCAtbkh3IGRlcF9tYXAgZnMva2VybmZzDQpmcy9rZXJuZnMvZGly -LmM6NDIxOgkJcndzZW1fYWNxdWlyZV9yZWFkKCZrbi0+ZGVwX21hcCwgMCwgMSwgX1JFVF9JUF8p -Ow0KZnMva2VybmZzL2Rpci5jOjQ0MToJCXJ3c2VtX3JlbGVhc2UoJmtuLT5kZXBfbWFwLCAxLCBf -UkVUX0lQXyk7DQpmcy9rZXJuZnMvZGlyLmM6NDY4OgkJcndzZW1fYWNxdWlyZSgma24tPmRlcF9t -YXAsIDAsIDAsIF9SRVRfSVBfKTsNCmZzL2tlcm5mcy9kaXIuYzo0NzA6CQkJbG9ja19jb250ZW5k -ZWQoJmtuLT5kZXBfbWFwLCBfUkVUX0lQXyk7DQpmcy9rZXJuZnMvZGlyLmM6NDc4OgkJbG9ja19h -Y3F1aXJlZCgma24tPmRlcF9tYXAsIF9SRVRfSVBfKTsNCmZzL2tlcm5mcy9kaXIuYzo0Nzk6CQly -d3NlbV9yZWxlYXNlKCZrbi0+ZGVwX21hcCwgMSwgX1JFVF9JUF8pOw0KZnMva2VybmZzL2Rpci5j -OjEzODU6CQlyd3NlbV9hY3F1aXJlKCZrbi0+ZGVwX21hcCwgMCwgMSwgX1JFVF9JUF8pOw0KZnMv -a2VybmZzL2ZpbGUuYzoxMDAwOgkJbG9ja2RlcF9pbml0X21hcCgma24tPmRlcF9tYXAsICJzX2Fj -dGl2ZSIsIGtleSwgMCk7DQoNCkJhcnQu +On Thu, 2017-08-17 at 16:30 -0400, Steven Rostedt wrote: +> On Thu, 17 Aug 2017 12:24:39 -0400 +> Waiman Long <longman@redhat.com> wrote: +> +> > On 08/17/2017 09:34 AM, Steven Rostedt wrote: +> > > On Wed, 16 Aug 2017 16:40:40 -0400 +> > > Waiman Long <longman@redhat.com> wrote: +> > > +> > > > The lockdep code had reported the following unsafe locking scenario: +> > > > +> > > > CPU0 CPU1 +> > > > ---- ---- +> > > > lock(s_active#228); +> > > > lock(&bdev->bd_mutex/1); +> > > > lock(s_active#228); +> > > > lock(&bdev->bd_mutex); +> > > +> > > Can you show the exact locations of these locks. I have no idea where +> > > this "s_active" is. +> > +> > The s_active isn't an actual lock. It is a reference count (kn->count) +> > on the sysfs (kernfs) file. Removal of a sysfs file, however, require +> > a wait until all the references are gone. The reference count is +> > treated like a rwsem using lockdep instrumentation code. +> +> Which kernel is this? I don't see any lockdep annotation around +> kn->count (doing a git grep, I find it referenced in fs/kernfs/dir.c) + +As far as I know the s_active lockdep annotations were introduced in 2007 +through commit 0ab66088c855 ("sysfs: implement sysfs_dirent active reference +and immediate disconnect"). Today these annotations exist in kernfs: +$ git grep -nHw dep_map fs/kernfs +fs/kernfs/dir.c:421: rwsem_acquire_read(&kn->dep_map, 0, 1, _RET_IP_); +fs/kernfs/dir.c:441: rwsem_release(&kn->dep_map, 1, _RET_IP_); +fs/kernfs/dir.c:468: rwsem_acquire(&kn->dep_map, 0, 0, _RET_IP_); +fs/kernfs/dir.c:470: lock_contended(&kn->dep_map, _RET_IP_); +fs/kernfs/dir.c:478: lock_acquired(&kn->dep_map, _RET_IP_); +fs/kernfs/dir.c:479: rwsem_release(&kn->dep_map, 1, _RET_IP_); +fs/kernfs/dir.c:1385: rwsem_acquire(&kn->dep_map, 0, 1, _RET_IP_); +fs/kernfs/file.c:1000: lockdep_init_map(&kn->dep_map, "s_active", key, 0); + +Bart. diff --git a/a/content_digest b/N1/content_digest index fa06da7..24eb804 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -16,41 +16,47 @@ " linux-fsdevel@vger.kernel.org <linux-fsdevel@vger.kernel.org>\0" "\00:1\0" "b\0" - "T24gVGh1LCAyMDE3LTA4LTE3IGF0IDE2OjMwIC0wNDAwLCBTdGV2ZW4gUm9zdGVkdCB3cm90ZToN\n" - "Cj4gT24gVGh1LCAxNyBBdWcgMjAxNyAxMjoyNDozOSAtMDQwMA0KPiBXYWltYW4gTG9uZyA8bG9u\n" - "Z21hbkByZWRoYXQuY29tPiB3cm90ZToNCj4gDQo+ID4gT24gMDgvMTcvMjAxNyAwOTozNCBBTSwg\n" - "U3RldmVuIFJvc3RlZHQgd3JvdGU6DQo+ID4gPiBPbiBXZWQsIDE2IEF1ZyAyMDE3IDE2OjQwOjQw\n" - "IC0wNDAwDQo+ID4gPiBXYWltYW4gTG9uZyA8bG9uZ21hbkByZWRoYXQuY29tPiB3cm90ZToNCj4g\n" - "PiA+ICANCj4gPiA+ID4gVGhlIGxvY2tkZXAgY29kZSBoYWQgcmVwb3J0ZWQgdGhlIGZvbGxvd2lu\n" - "ZyB1bnNhZmUgbG9ja2luZyBzY2VuYXJpbzoNCj4gPiA+ID4gDQo+ID4gPiA+ICAgICAgICBDUFUw\n" - "ICAgICAgICAgICAgICAgICAgICBDUFUxDQo+ID4gPiA+ICAgICAgICAtLS0tICAgICAgICAgICAg\n" - "ICAgICAgICAtLS0tDQo+ID4gPiA+ICAgbG9jayhzX2FjdGl2ZSMyMjgpOw0KPiA+ID4gPiAgICAg\n" - "ICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jaygmYmRldi0+YmRfbXV0ZXgvMSk7DQo+ID4g\n" - "PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NrKHNfYWN0aXZlIzIyOCk7DQo+\n" - "ID4gPiA+ICAgbG9jaygmYmRldi0+YmRfbXV0ZXgpOyAgDQo+ID4gPiANCj4gPiA+IENhbiB5b3Ug\n" - "c2hvdyB0aGUgZXhhY3QgbG9jYXRpb25zIG9mIHRoZXNlIGxvY2tzLiBJIGhhdmUgbm8gaWRlYSB3\n" - "aGVyZQ0KPiA+ID4gdGhpcyAic19hY3RpdmUiIGlzLiAgDQo+ID4gDQo+ID4gVGhlIHNfYWN0aXZl\n" - "IGlzbid0IGFuIGFjdHVhbCBsb2NrLiBJdCBpcyBhIHJlZmVyZW5jZSBjb3VudCAoa24tPmNvdW50\n" - "KQ0KPiA+IG9uIHRoZSBzeXNmcyAoa2VybmZzKSBmaWxlLiBSZW1vdmFsIG9mIGEgc3lzZnMgZmls\n" - "ZSwgaG93ZXZlciwgcmVxdWlyZQ0KPiA+IGEgd2FpdCB1bnRpbCBhbGwgdGhlIHJlZmVyZW5jZXMg\n" - "YXJlIGdvbmUuIFRoZSByZWZlcmVuY2UgY291bnQgaXMNCj4gPiB0cmVhdGVkIGxpa2UgYSByd3Nl\n" - "bSB1c2luZyBsb2NrZGVwIGluc3RydW1lbnRhdGlvbiBjb2RlLg0KPiANCj4gV2hpY2gga2VybmVs\n" - "IGlzIHRoaXM/IEkgZG9uJ3Qgc2VlIGFueSBsb2NrZGVwIGFubm90YXRpb24gYXJvdW5kDQo+IGtu\n" - "LT5jb3VudCAoZG9pbmcgYSBnaXQgZ3JlcCwgSSBmaW5kIGl0IHJlZmVyZW5jZWQgaW4gZnMva2Vy\n" - "bmZzL2Rpci5jKQ0KDQpBcyBmYXIgYXMgSSBrbm93IHRoZSBzX2FjdGl2ZSBsb2NrZGVwIGFubm90\n" - "YXRpb25zIHdlcmUgaW50cm9kdWNlZCBpbiAyMDA3DQp0aHJvdWdoIGNvbW1pdCAwYWI2NjA4OGM4\n" - "NTUgKCJzeXNmczogaW1wbGVtZW50IHN5c2ZzX2RpcmVudCBhY3RpdmUgcmVmZXJlbmNlDQphbmQg\n" - "aW1tZWRpYXRlIGRpc2Nvbm5lY3QiKS4gVG9kYXkgdGhlc2UgYW5ub3RhdGlvbnMgZXhpc3QgaW4g\n" - "a2VybmZzOg0KJCBnaXQgZ3JlcCAtbkh3IGRlcF9tYXAgZnMva2VybmZzDQpmcy9rZXJuZnMvZGly\n" - "LmM6NDIxOgkJcndzZW1fYWNxdWlyZV9yZWFkKCZrbi0+ZGVwX21hcCwgMCwgMSwgX1JFVF9JUF8p\n" - "Ow0KZnMva2VybmZzL2Rpci5jOjQ0MToJCXJ3c2VtX3JlbGVhc2UoJmtuLT5kZXBfbWFwLCAxLCBf\n" - "UkVUX0lQXyk7DQpmcy9rZXJuZnMvZGlyLmM6NDY4OgkJcndzZW1fYWNxdWlyZSgma24tPmRlcF9t\n" - "YXAsIDAsIDAsIF9SRVRfSVBfKTsNCmZzL2tlcm5mcy9kaXIuYzo0NzA6CQkJbG9ja19jb250ZW5k\n" - "ZWQoJmtuLT5kZXBfbWFwLCBfUkVUX0lQXyk7DQpmcy9rZXJuZnMvZGlyLmM6NDc4OgkJbG9ja19h\n" - "Y3F1aXJlZCgma24tPmRlcF9tYXAsIF9SRVRfSVBfKTsNCmZzL2tlcm5mcy9kaXIuYzo0Nzk6CQly\n" - "d3NlbV9yZWxlYXNlKCZrbi0+ZGVwX21hcCwgMSwgX1JFVF9JUF8pOw0KZnMva2VybmZzL2Rpci5j\n" - "OjEzODU6CQlyd3NlbV9hY3F1aXJlKCZrbi0+ZGVwX21hcCwgMCwgMSwgX1JFVF9JUF8pOw0KZnMv\n" - "a2VybmZzL2ZpbGUuYzoxMDAwOgkJbG9ja2RlcF9pbml0X21hcCgma24tPmRlcF9tYXAsICJzX2Fj\n" - dGl2ZSIsIGtleSwgMCk7DQoNCkJhcnQu + "On Thu, 2017-08-17 at 16:30 -0400, Steven Rostedt wrote:\n" + "> On Thu, 17 Aug 2017 12:24:39 -0400\n" + "> Waiman Long <longman@redhat.com> wrote:\n" + "> \n" + "> > On 08/17/2017 09:34 AM, Steven Rostedt wrote:\n" + "> > > On Wed, 16 Aug 2017 16:40:40 -0400\n" + "> > > Waiman Long <longman@redhat.com> wrote:\n" + "> > > \n" + "> > > > The lockdep code had reported the following unsafe locking scenario:\n" + "> > > > \n" + "> > > > CPU0 CPU1\n" + "> > > > ---- ----\n" + "> > > > lock(s_active#228);\n" + "> > > > lock(&bdev->bd_mutex/1);\n" + "> > > > lock(s_active#228);\n" + "> > > > lock(&bdev->bd_mutex); \n" + "> > > \n" + "> > > Can you show the exact locations of these locks. I have no idea where\n" + "> > > this \"s_active\" is. \n" + "> > \n" + "> > The s_active isn't an actual lock. It is a reference count (kn->count)\n" + "> > on the sysfs (kernfs) file. Removal of a sysfs file, however, require\n" + "> > a wait until all the references are gone. The reference count is\n" + "> > treated like a rwsem using lockdep instrumentation code.\n" + "> \n" + "> Which kernel is this? I don't see any lockdep annotation around\n" + "> kn->count (doing a git grep, I find it referenced in fs/kernfs/dir.c)\n" + "\n" + "As far as I know the s_active lockdep annotations were introduced in 2007\n" + "through commit 0ab66088c855 (\"sysfs: implement sysfs_dirent active reference\n" + "and immediate disconnect\"). Today these annotations exist in kernfs:\n" + "$ git grep -nHw dep_map fs/kernfs\n" + "fs/kernfs/dir.c:421:\t\trwsem_acquire_read(&kn->dep_map, 0, 1, _RET_IP_);\n" + "fs/kernfs/dir.c:441:\t\trwsem_release(&kn->dep_map, 1, _RET_IP_);\n" + "fs/kernfs/dir.c:468:\t\trwsem_acquire(&kn->dep_map, 0, 0, _RET_IP_);\n" + "fs/kernfs/dir.c:470:\t\t\tlock_contended(&kn->dep_map, _RET_IP_);\n" + "fs/kernfs/dir.c:478:\t\tlock_acquired(&kn->dep_map, _RET_IP_);\n" + "fs/kernfs/dir.c:479:\t\trwsem_release(&kn->dep_map, 1, _RET_IP_);\n" + "fs/kernfs/dir.c:1385:\t\trwsem_acquire(&kn->dep_map, 0, 1, _RET_IP_);\n" + "fs/kernfs/file.c:1000:\t\tlockdep_init_map(&kn->dep_map, \"s_active\", key, 0);\n" + "\n" + Bart. -d7603fbf184105a45cd6b719fd61cafa44bfa365431937b7638bd7bd4d8c2699 +81dd51e876a5b9f7979f7e80b117c59be4b89dab39b9fc706b4e3dcd66d3b139
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.