We have been facing some issues during Linux 2.3.99 IA-64 IO test for our
Fibre Channel HBA driver and hope someone can shed some light on it.
We have the driver works for both 32 and 64 bit Linux system. The multi IO
test on 32 bit Linux (we are using RH6.1) works great. No problem has being
seen. However, on IA-64 platform with Linux 2.3.99 released by TurboLinux,
we are having following issues:
1, spin_lock_irqsave and spin_lock_irqrestore pair did not do the work it
suppose to do.
- when spin_lock_irqsave is called in ISR routine, the lock on
&io_request_lock should be hold until
spin_lock_irqrestore is called. However, during the lock being held
period, another routine called
spin_lock_irqsave with same address (&io_request_lock) and got
through.
The only explanation for this is that some routine from outside of our
driver called spin_lock_irqrestore
with the same address. But if it is true, then the lock should not be
acquired at the first place in ISR.
Any good explanation will be appreciated.
2, We are running multi raw IO test (dd) OK with the driver. However when
running file system IO test (simply
cp different size of files), the segmentation fault will occur soon or
later and core file is generated. With
gdb -c option, we can see the fault address is 0x20000000001185a0. All
driver routines are on the
address of 0xe************* and all memory allocated by driver is also
in that range.
Could anyone point out where is this 0x2*********** and what it possible
represents (stack memory?)?
3, All of driver data structure and allocated memory are 8 byte aligned.
During the file 'cp' and 'diff'
operation, no problem is found during the file transfer operated on our
driver. When file is copied to
primary hard drive and doing 'diff' there with primary qlogic qla1280
driver, system will oops soon or
later with messages of "Trap unaligned data ****". Looking into
q1a1280, some data structure is not 8 byte
aligned. However it still works fine if the test is running only on
primary drive.
Is the 8 byte alignment is the "MUST" criteria? If so, why qla1280 can
still work fine without fully aligned?
Great appreciation for any kind of help!
-eddie
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/