linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* QEMU's scsi controller no longer works on arm.
@ 2007-06-17 18:20 Rob Landley
  2007-06-18 14:17 ` Anthony Liguori
  0 siblings, 1 reply; 2+ messages in thread
From: Rob Landley @ 2007-06-17 18:20 UTC (permalink / raw)
  To: linux-kernel; +Cc: linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 1515 bytes --]

In 2.6.20, I can boot an arm kernel up to a shell prompt including a virtual 
scsi hard drive.  In 2.6.21-rc1, this stopped working.

I tried "git bisect" and found out there's a range of about 5000 commits 
between the two where arm doesn't compile.  At the start of this range, the 
controller worked.  At the end, it didn't anymore.

How can YOU reproduce this problem?  I'm glad you asked:

The miniconfig I'm using is attached.  You'll need an arm compiler to build 
it, of course.  (If you haven't got one, the cross compiler I made is 
at "http://landley.net/code/firmware/downloads/cross-compiler/".  Download 
the armv4l version for the appropriate host, extract the tarball and add 
the "bin" directory under that to your path.  The x86 version should work on 
Ubuntu 6.06 or newer, the x86-64 version was built on 7.04.)

Configure with:

make ARCH=arm allnoconfig KCONFIG_ALLCONFIG=miniconfig-linux
make ARCH=arm CROSS_COMPILE=armv4l-

And then run qemu on it:

qemu-system-arm -M versatilepb -nographic -no-reboot \
  -hda /dev/null -kernel zImage-armv4l -append \
  'rw panic=1 root=/dev/sdaconsole=ttyAMA0'

The failing system will loop resetting the scsi controller with lots of 
timeouts, and takes several minutes to get the the panic where it can't mount 
root.  The working system will panic due to root being /dev/null fairly 
quickly, without pages of error messages and a very long wait first.

Rob
-- 
"One of my most productive days was throwing away 1000 lines of code."
  - Ken Thompson.

[-- Attachment #2: miniconfig-linux --]
[-- Type: text/plain, Size: 2146 bytes --]

CONFIG_EXPERIMENTAL=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_KALLSYMS_EXTRA_PASS=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_AS=y
CONFIG_ARCH_VERSATILE_PB=y
CONFIG_MACH_VERSATILE_AB=y
CONFIG_CPU_ARM926T=y
CONFIG_ARM_THUMB=y
CONFIG_PCI=y
CONFIG_CMDLINE="mem=128M console=ttyAMA0 user_debug=31"
CONFIG_FPE_NWFPE=y
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=y
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_NET_KEY=y
CONFIG_INET=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y
CONFIG_BRIDGE=y
CONFIG_VLAN_8021Q=y
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_CRYPTOLOOP=y
CONFIG_BLK_DEV_NBD=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=16384
CONFIG_BLK_DEV_INITRD=y
CONFIG_SCSI=y
CONFIG_SCSI_PROC_FS=y
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR=y
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_FC_ATTRS=y
CONFIG_SCSI_ISCSI_ATTRS=y
CONFIG_SCSI_SAS_LIBSAS=y
CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
CONFIG_SCSI_SYM53C8XX_2=y
CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0
CONFIG_SCSI_SYM53C8XX_MMIO=y
CONFIG_NETDEVICES=y
CONFIG_DUMMY=y
CONFIG_TUN=y
CONFIG_PPP=y
CONFIG_PPP_MULTILINK=y
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=y
CONFIG_PPP_SYNC_TTY=y
CONFIG_PPP_DEFLATE=y
CONFIG_PPPOE=y
CONFIG_SERIAL_NONSTANDARD=y
CONFIG_N_HDLC=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_HW_RANDOM=y
CONFIG_FIRMWARE_EDID=y
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_ROMFS_FS=y
CONFIG_TMPFS=y
CONFIG_CRAMFS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFS_V4=y
CONFIG_NFS_DIRECTIO=y
CONFIG_SMB_FS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_UTF8=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
CONFIG_LOG_BUF_SHIFT=17
CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_SPINLOCK_SLEEP=y
CONFIG_DEBUG_INFO=y
CONFIG_FORCED_INLINING=y
CONFIG_DEBUG_USER=y
CONFIG_DEBUG_ERRORS=y
CONFIG_DEBUG_LL=y
CONFIG_CRYPTO_CRC32C=y

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: QEMU's scsi controller no longer works on arm.
  2007-06-17 18:20 QEMU's scsi controller no longer works on arm Rob Landley
@ 2007-06-18 14:17 ` Anthony Liguori
  0 siblings, 0 replies; 2+ messages in thread
From: Anthony Liguori @ 2007-06-18 14:17 UTC (permalink / raw)
  To: linux-kernel; +Cc: linux-arm-kernel

Rob Landley wrote:
> In 2.6.20, I can boot an arm kernel up to a shell prompt including a virtual 
> scsi hard drive.  In 2.6.21-rc1, this stopped working.
>

It's broken with x86 too.  I looked into it for a bit and it appears 
that the Linux driver is using more LSI commands than it was before. 
The odd thing is that it's probing some space that is marked reserved in 
the LSI manual.  Unfortunately, I couldn't understand the SCSI system 
well enough to understand what changed in Linux.

Regards,

Anthony Liguori

> I tried "git bisect" and found out there's a range of about 5000 commits 
> between the two where arm doesn't compile.  At the start of this range, the 
> controller worked.  At the end, it didn't anymore.
> 
> How can YOU reproduce this problem?  I'm glad you asked:
> 
> The miniconfig I'm using is attached.  You'll need an arm compiler to build 
> it, of course.  (If you haven't got one, the cross compiler I made is 
> at "http://landley.net/code/firmware/downloads/cross-compiler/".  Download 
> the armv4l version for the appropriate host, extract the tarball and add 
> the "bin" directory under that to your path.  The x86 version should work on 
> Ubuntu 6.06 or newer, the x86-64 version was built on 7.04.)
> 
> Configure with:
> 
> make ARCH=arm allnoconfig KCONFIG_ALLCONFIG=miniconfig-linux
> make ARCH=arm CROSS_COMPILE=armv4l-
> 
> And then run qemu on it:
> 
> qemu-system-arm -M versatilepb -nographic -no-reboot \
>   -hda /dev/null -kernel zImage-armv4l -append \
>   'rw panic=1 root=/dev/sdaconsole=ttyAMA0'
> 
> The failing system will loop resetting the scsi controller with lots of 
> timeouts, and takes several minutes to get the the panic where it can't mount 
> root.  The working system will panic due to root being /dev/null fairly 
> quickly, without pages of error messages and a very long wait first.
> 
> Rob


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-06-18 16:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-06-17 18:20 QEMU's scsi controller no longer works on arm Rob Landley
2007-06-18 14:17 ` Anthony Liguori

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).