PCI range checking under qemu-system-sparc64

Alexey Dokuchaev danfe at FreeBSD.org
Thu Sep 17 08:28:17 UTC 2015


On Wed, Sep 16, 2015 at 11:19:15PM +0200, Marius Strobl wrote:
> [...]
> Which suggest that the next thing to investigate is the CMD646
> emulation. Is there a particular reason why QEMU emulates a
> CMD646U rather than a plain CMD646 as found in the real sun4u
> machines of the USIIe/i era?
> 
> Alexey, does building the port with CDROM_DMA disabled make
> a difference?

Ironically I had it already disabled prior to your question; but I've
rebuilt the port enabling it for completeness' sake.  It did not make
a difference.

Then I've disabled all CAM/ATA stuff (scbus, ata, umass, etc.) in the
kernel config and that's what I see now (this is with CDROM_DMA=on):

  cryptosoft0: <software crypto> on nexus0
  nexus0: <syscons> type unknown (no driver attached)
  Timecounter "tick" frequency 100000000 Hz quality 1000
  Event timer "tick" frequency 100000000 Hz quality 1000
  Timecounters tick every 1.000 msec
  IPsec: Initialized Security Association Processing.
  Trying to mount root from cd9660:/dev/iso9660/TEST [ro]...
  mountroot: waiting for device /dev/iso9660/TEST ...

> Alexey, could you please try to drop into the debugger
> (apparently, ctrl-a b should bring you there with QEMU if
> you have compiled DDB into the kernel) and issue a `show
> intrcnt` (besides a backtrace)?

Not particularly interesting it seems:

  KDB: enter: Break to debugger
  [ thread pid 11 tid 100004 ]
  Stopped at      kdb_enter+0x80: ta              %xcc, 1
  db> bt
  Tracing pid 11 tid 100004 td 0xfffff80001287810
  kdb_break() at kdb_break+0x54
  uart_intr() at uart_intr+0x1e4
  intr_event_handle() at intr_event_handle+0x68
  intr_execute_handlers() at intr_execute_handlers+0x8
  intr_fast() at intr_fast+0x50
  -- interrupt level=0xb pil=0 %o7=0xc045be04 --
  sched_idletd() at sched_idletd+0x3b4
  fork_exit() at fork_exit+0x80
  fork_trampoline() at fork_trampoline+0x8
  db> show intrcnt
  db> 

> On Wed, Sep 16, 2015 at 08:27:52PM +0100, Mark Cave-Ayland wrote:
> > I also see that the output stops after "IPsec: Initialized Security
> > Association Processing." appears on the console. Maybe the crypto uses
> > paths that aren't well tested in QEMU or we are waiting for entrophy?
> 
> Unlikely; "Initialized" means just that, the SA stuff has
> been set up. Also, given that IP isn't used at that point
> IPsec simply isn't either. Unblocking the random device
> in turn comes later, i. e. at least after storage devices
> have been probed.

Marius' thinking is correct; in fact, I've tried to disable various
"auxiliary" stuff earlier (including CRYPTO) and it did not make any
difference.

./danfe


More information about the freebsd-sparc64 mailing list