On Mon, 2006-02-27 at 09:18 -0800, Stephen Hemminger wrote:
On Mon, 27 Feb 2006 17:38:38 +0100
Wolfgang Hoffmann <woho@xxxxxxx> wrote:
On Monday 27 February 2006 17:00, Stephen Hemminger wrote:
2.6.16-rc5 with disable_msi=1 works for me, no hangs seen so far. I rsynced 80 GB of data, thats about 5-10 times more than I typically need to reproduce a hang, so it seems to be solid. For the record: 2.6.16-rc5 with disable_msi=0 does hang.
I have not seen the memory trashing others reported, with no version I tested so far. Maybe my scenario is not likely to trigger this, so I can't tell.
Unless a fix for msi is at hand, may I suggest for 2.6.16 to revert the msi commit or switch the default to disable_msi=1?
I've updated bugzilla #6084 accordingly.
Okay, then what I need is lspci -v of all systems that have the problem, I'll make
a blacklist (or update PCI quirks). I suspect that MSI doesn't work for any devices
on these systems, or MSI changes the timing enough to expose existing races.
Am i just tired from trying to make XSLT to do something unnatural or is
there something odd going on in msi.c?
static void msi_set_mask_bit(unsigned int vector, int flag)
{
struct msi_desc *entry;
entry = (struct msi_desc *)msi_desc[vector];
if (!entry || !entry->dev || !entry->mask_base)
return;
switch (entry->msi_attrib.type) {
case PCI_CAP_ID_MSI:
{
int pos; <==
u32 mask_bits;
pos = (long)entry->mask_base; <==
...