Hello, this is a reproducible kernel page-fault crash on stable as of 1h ago: FreeBSD gahrtop.localhost 6.2-STABLE FreeBSD 6.2-STABLE #4: Mon Jan 15 11:24:56 CET 2007 root@gahrtop.localhost:/usr/obj/usr/src/sys/GAHRTOP i386 1) atacontrol list ATA channel 0: Master: ad0 <FUJITSU MHW2120BH/00000012> Serial ATA v1.0 Slave: no device present ATA channel 1: Master: no device present Slave: acd0 <HL-DT-ST DVDRAM GSA-T10N/PA02> ATA/ATAPI revision 5 2) -> plug in USB stick (microspot 256MB USB2.0) 3) atacontrol list ATA channel 0: Master: ad0 <FUJITSU MHW2120BH/00000012> Serial ATA v1.0 Slave: no device present ATA channel 1: Master: no device present Slave: acd0 <HL-DT-ST DVDRAM GSA-T10N/PA02> ATA/ATAPI revision 5 ATA channel 2: Master: no device present Slave: no device present 4) atacontrol attach ata2 Fatal trap 12: page fault while in kernel mode cpuid = 0; apic id = 00 fault virtual address = 0x24 fault code = supervisor read, page not present instruction pointer = 0x20:0xc050d8fa stack pointer = 0x28:0xe8fd2bb8 frame pointer = 0x28:0xe8fd2bb8 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 900 (atacontrol) trap number = 12 panic: page fault cpuid = 0 Uptime = 5m46s Physical memory: 2031 MB Dumping 63 MB: at this point nothing more appens. I have set debug.minidump=1 so maybe this could be the cause for the RAM not to be dumped. Furthermore, I read " The atacontrol utility can cause severe system crashes and loss of data if used improperly. Please exercise caution when using this command! " from the atacontrol(8) manual page, so maybe it's just me doing something wrong. If it's the case, how can I scan for the just-plugged-in USB disk using the atausb driver? No device appears in /dev last one: why atausb doesn't have a manual page?? Thanx, -- Pietro Cerutti ICQ: 117293691 PGP: 0x9571F78E - ASCII Ribbon Campaign - against HTML e-mail and proprietary attachments www.asciiribbon.org
On Monday 15 January 2007 12:22, Pietro Cerutti wrote:> Hello, > this is a reproducible kernel page-fault crash on stable as of 1h ago: > > FreeBSD gahrtop.localhost 6.2-STABLE FreeBSD 6.2-STABLE #4: Mon Jan 15 > 11:24:56 CET 2007 > root@gahrtop.localhost:/usr/obj/usr/src/sys/GAHRTOP i386 > > 1) atacontrol list > ATA channel 0: > Master: ad0 <FUJITSU MHW2120BH/00000012> Serial ATA v1.0 > Slave: no device present > ATA channel 1: > Master: no device present > Slave: acd0 <HL-DT-ST DVDRAM GSA-T10N/PA02> ATA/ATAPI revision 5 > > 2) -> plug in USB stick (microspot 256MB USB2.0) > > 3) atacontrol list > ATA channel 0: > Master: ad0 <FUJITSU MHW2120BH/00000012> Serial ATA v1.0 > Slave: no device present > ATA channel 1: > Master: no device present > Slave: acd0 <HL-DT-ST DVDRAM GSA-T10N/PA02> ATA/ATAPI revision 5 > ATA channel 2: > Master: no device present > Slave: no device present > > 4) atacontrol attach ata2This is a known issue that SOS should fix. If you look into the code of "ata_attach()" you will see that it tries to do things that are not allowed by USB devices, like allocating an IRQ: int ata_attach(device_t dev) { struct ata_channel *ch = device_get_softc(dev); int error, rid; /* check that we have a virgin channel to attach */ if (ch->r_irq) return EEXIST; /* initialize the softc basics */ ch->dev = dev; ch->state = ATA_IDLE; bzero(&ch->state_mtx, sizeof(struct mtx)); mtx_init(&ch->state_mtx, "ATA state lock", NULL, MTX_DEF); bzero(&ch->queue_mtx, sizeof(struct mtx)); mtx_init(&ch->queue_mtx, "ATA queue lock", NULL, MTX_DEF); TAILQ_INIT(&ch->ata_queue); /* reset the controller HW, the channel and device(s) */ while (ATA_LOCKING(dev, ATA_LF_LOCK) != ch->unit) tsleep(&error, PRIBIO, "ataatch", 1); ATA_RESET(dev); ATA_LOCKING(dev, ATA_LF_UNLOCK); /* setup interrupt delivery */ rid = ATA_IRQ_RID; ch->r_irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_SHAREABLE | RF_ACTIVE); if (!ch->r_irq) { device_printf(dev, "unable to allocate interrupt\n"); return ENXIO; } if ((error = bus_setup_intr(dev, ch->r_irq, ATA_INTR_FLAGS, (driver_intr_t *)ata_interrupt, ch, &ch->ih))) { device_printf(dev, "unable to setup interrupt\n"); return error; } /* probe and attach devices on this channel unless we are in early boot */ if (!ata_delayed_attach) ata_identify(dev); return 0; } Same with "ata_detach()".> > last one: why atausb doesn't have a manual page??Probably the device driver is too new. --HPS
Hello, * Pietro Cerutti <pietro.cerutti@gmail.com> wrote:> On 1/15/07, Hans Petter Selasky <hselasky@c2i.net> wrote: > > > >No. What happens when you use/load "umass" and unload "atausb" ? > Everything works nice with umass. It creates the da0 device node. > It just shows up these errors, as it always did... > GEOM: new disk da0 > da0 at umass-sim0 bus 0 target 0 lun 0 > da0: < USB2.0 FlashDisk 1.1b> Removable Direct Access SCSI-0 device > da0: Serial Number > da0: 40.000MB/s transfers > da0: 248MB (507904 512 byte sectors: 64H 32S/T 248C) > (da0:umass-sim0:0:0:0): Synchronize cache failed, status == 0x4, scsi > status == 0x0 > (da0:umass-sim0:0:0:0): Synchronize cache failed, status == 0x4, scsi > status == 0x0 > (da0:umass-sim0:0:0:0): Synchronize cache failed, status == 0x4, scsi > status == 0x0 > (da0:umass-sim0:0:0:0): Synchronize cache failed, status == 0x4, scsi > status == 0x0I had these messages with two other devices before, an MP3 player and a USB floppy drive. I fixed these errors by adding a quirk to /sys/cam/scsi/scsi_da.c. http://www.freebsd.org/cgi/query-pr.cgi?pr=97174 http://www.freebsd.org/cgi/query-pr.cgi?pr=107101 -- Ed Schouten <ed@fxq.nl> WWW: http://g-rave.nl/ -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 187 bytes Desc: not available Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20070124/5cb47336/attachment.pgp