Re: [PATCH 3/4] rhashtable: use bit_spin_locks to protect hash bucket.

From: Guenter Roeck
Date: Thu Apr 11 2019 - 08:44:52 EST


On 4/10/19 11:40 PM, NeilBrown wrote:
On Thu, Apr 11 2019, NeilBrown wrote:

On Thu, Apr 11 2019, NeilBrown wrote:

On Wed, Apr 10 2019, Guenter Roeck wrote:

Hi,

.....

This patch causes my qemu q800 boot test to crash reliably.

....
Code: 4a89 6604 4280 60ea 2c2b 000c 2748 000c <2869> 000c 082c 0003 0002 6728 4878 0014 7620 4873 3800 486e ffec 4eb9 002e 5b88

Thanks for testing and for the report.
.....

.... and after googling a bit I see that 68000 require 2-byte alignment,
but not 4-byte. Oh..

That means there aren't two spare bits in an address, so I cannot use
one for the NULLS and one for a lock bit. Bother.

I might be able to find a different way forward, but for now I think we
need to drop this series.

I have found a way forward that I like. It only requires one bit per
address to be over-loaded.

The following patch implements it and works for me.
Could you please confirm that it fixes your problem on m68k ??

Sorry, that was on the wrong base.

Please try this one, against current net-next.


First of all, excellent analysis!

With this patch applied:

Build reference: next-20190410-1-ge294005789ed

Building mcf5208evb:m5208:m5208evb_defconfig:initrd ... running .... passed
Building q800:m68040:mac_defconfig:initrd ... running .... passed
Building q800:m68040:mac_defconfig:rootfs ... running .... passed


I also reconfirmed the crash with next-20190410.

With that, feel free to add:

Tested-by: Guenter Roeck <linux@xxxxxxxxxxxx>

Thanks,
Guenter