Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

RFC: ATA to CAM integration patch

19 views
Skip to first unread message

Alexander Motin

unread,
Jun 26, 2009, 2:47:26 PM6/26/09
to FreeBSD-Current, sco...@freebsd.org
Hi.

I would like to present for testing and feedback present state of my and
Scott work on extending CAM subsystem to support ATA in addition to
SCSI. At this moment we have:
- CAM transport separated on common and SCSI-specific parts, last one
wrapped with small API that allows switching;
- implemented SATA-specific transport, that is automatically used when
controller reports SATA bus attached to it. It supports both single
drive and Port Multiplier modes. The only parts unfinished yet is the
automatic hot-plug (you have to do reset/rescan manually) and heavy
errors recovery;
- implemented ATA disk driver for CAM infrastructure to natively
operate ATA disks. It already supports most of required functionality:
identify, read, write, flush, dump, NCQ;
- ATAPI devices handled natively by existing SCSI peripherals drivers,
by tunneling SCSI commands over ATA bus by PACKET ATA extension;
- implemented AHCI controller driver, supporting most of tasty
hardware features (controller command queuing, NCQ, Port Multiplier,
MSI). Only some features from latest AHCI specifications for which I
have no hardware left unimplemented.
- camcontrol took minor changes to be able to report ATA devices.

To test our work you should:
- have any AHCI compatible controller configured to native AHCI mode
(not a COMPATIBLE or RAID or whatever else) by BIOS;
- have some Serial ATA/ATAPI drives connected to AHCI controller;
- patch your recently updated 8-CURRENT with this patch:
http://people.freebsd.org/~mav/cam-ata.20090626.patch
- rebuild and install world and kernel;
- read new ahci man page;
- make sure that you will be able to boot if your SATA disk devices
name change from some ad4 to ada0;
- load ahci kernel module using loader prompt or loader.conf;
- boot.

This change does not breaks existing ATA infrastructure, it just
provides higher priority driver for the same hardware. So you should be
able get back at any time by just not loading ahci module.

To hot-plug/unplug drive you should use `camcontrol reset ...` and then
`camcontrol rescan`.

Here is what I have running in my system now, connected to on-board ICH8
and JMB363 AHCI SATA controllers, using external SiI3726 Port Multiplier:

%camcontrol devlist
<ST3250620NS 3.AEK> at scbus0 target 0 lun 0 (pass0,ada0)
<Optiarc DVD RW AD-7200S 1.0A> at scbus0 target 1 lun 0 (cd0,pass1)
<Hitachi HTS542525K9SA00 BBFOC31P> at scbus0 target 2 lun 0 (ada3,pass5)
<Port Multiplier 37261095 1706> at scbus0 target 15 lun 0 (pass2)
<OCZ-VERTEX 1.30> at scbus2 target 0 lun 0 (pass3,ada1)
<ST3250620NS 3.AEK> at scbus3 target 0 lun 0 (pass4,ada2)

ICH8 AHCI controller works fine with multi-vector MSI enabled and all
disk drives listed here are using NCQ. Trivial benchmark on usual HDD
shown me about 15% speedup from enabling NCQ. I am successfully running
two of my systems with this new driver during last week.

Waiting for your feedback.

--
Alexander Motin

Alexander Motin

unread,
Jun 26, 2009, 4:05:41 PM6/26/09
to Ed Schouten, FreeBSD Current, sco...@freebsd.org
Ed Schouten wrote:

> * Alexander Motin <m...@FreeBSD.org> wrote:
>> I would like to present for testing and feedback present state of my and
>> Scott work on extending CAM subsystem to support ATA in addition to
>> SCSI. At this moment we have:
>> - CAM transport separated on common and SCSI-specific parts, last one
>> wrapped with small API that allows switching;
>
> Thanks a lot for working on this. I can't wait to see this code land
> into the tree somewhere in the future. Have you folks thought about a
> way to integrate this? Are the CAM changes going to be committed to the
> tree on beforehand?

We have thought about it. This patch is not very invasive. It does not
touch existing ATA code and not so much change existing CAM code. Scott
even discussed it with re@ and got permission to integrate it, if we
will be ready to do it before BETA3. So, testers are welcome, also SCSI
and umass ones, to be completely sure that we are not breaking any
existing functionality.

--
Alexander Motin

Ed Schouten

unread,
Jun 26, 2009, 3:54:55 PM6/26/09
to Alexander Motin, FreeBSD Current, sco...@freebsd.org
Hi Alexander,

* Alexander Motin <m...@FreeBSD.org> wrote:

> I would like to present for testing and feedback present state of my and
> Scott work on extending CAM subsystem to support ATA in addition to
> SCSI. At this moment we have:
> - CAM transport separated on common and SCSI-specific parts, last one
> wrapped with small API that allows switching;

Thanks a lot for working on this. I can't wait to see this code land


into the tree somewhere in the future. Have you folks thought about a
way to integrate this? Are the CAM changes going to be committed to the
tree on beforehand?

Yours,
--
Ed Schouten <e...@80386.nl>
WWW: http://80386.nl/

Roman Divacky

unread,
Jun 27, 2009, 6:11:51 AM6/27/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
On Fri, Jun 26, 2009 at 09:47:26PM +0300, Alexander Motin wrote:
> Hi.
>
> I would like to present for testing and feedback present state of my and
> Scott work on extending CAM subsystem to support ATA in addition to
> SCSI. At this moment we have:

this is awesome! do you plan to add support for the TRIM command support?
what would it take to teach FreeBSD to use the TRIM?

Ivan Voras

unread,
Jun 27, 2009, 7:05:00 AM6/27/09
to freebsd...@freebsd.org

GEOM knows the BIO_DELETE command, which is supposed to do what TRIM
does but is currently mostly unused. I think tree things need to happen
to use TRIM effectively:

1) Investigate the conditions of use of TRIM - e.g. must TRIM be applied
at special alignment on media (i.e. flash block-size?), because
BIO_DELETE has no alignment requirements.

2) Translate BIO_DELETE into appropriate IO command(s) in the driver(s)

3) Make file systems use BIO_DELETE (or whatever comes from it). AFAIK
it has been started for UFS, I have no idea about ZFS.

3a) See if existing GEOM classes support BIO_DELETE properly (i.e.
passthrough to the lower classes)

Alexander Motin

unread,
Jun 27, 2009, 7:01:56 AM6/27/09
to Roman Divacky, FreeBSD-Current, sco...@freebsd.org

I haven't looked on it yet, but I think should be really easy from disk
driver point ov view. After last firmware update, my SSD should now
support TRIM, so I will look on it closer, as time permit.

The main question is to implement BIO_DELETE in filesystems code. I have
seen in lists that UFS patches were made long time ago, but they are
still not committed. Now practically the only BIO_DELETE consumer is
newfs with -E option, which I have successfully used with mmcsd driver.

--
Alexander Motin

Alexander Motin

unread,
Jun 27, 2009, 7:22:00 AM6/27/09
to Alexander Leidinger, FreeBSD-Current, sco...@freebsd.org
Alexander Leidinger wrote:

> On Fri, 26 Jun 2009 21:47:26 +0300 Alexander Motin <m...@FreeBSD.org>
> wrote:
>> - make sure that you will be able to boot if your SATA disk devices
>> name change from some ad4 to ada0;
>
> Will it stay at adaX, or is it planned to move it to daX like other
> harddisks attached via SCSI? If it stays like it is now: what's the
> rationale to use a different name?

It is still point of discussion. I have arguments for 3 different options:
da - PRO: habitual CAM/SCSI disk name; CONTRA: ATA disk uses
completely separate ATA-native peripheral driver, it is difficult use
the same name for two drivers and it IMHO looks ugly:
ad - PRO: habitual ATA disk name; CONTRA: heavily conflicts with
ATA_STATIC_ID ata(4) option device unit numbering, also the same driver
name conflict, but a bit easier due to different parent bus;
ada - PRO: perfect from internal infrastructure PoV; CONTRA: just
unhabitual.

--
Alexander Motin

Alexander Leidinger

unread,
Jun 27, 2009, 6:50:36 AM6/27/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
On Fri, 26 Jun 2009 21:47:26 +0300 Alexander Motin <m...@FreeBSD.org>
wrote:

[ATA via CAM]

Great to hear, specially the NCQ part. :-)

> - make sure that you will be able to boot if your SATA disk devices
> name change from some ad4 to ada0;

Will it stay at adaX, or is it planned to move it to daX like other


harddisks attached via SCSI? If it stays like it is now: what's the
rationale to use a different name?

Bye,
Alexander.

Pieter de Goeje

unread,
Jun 27, 2009, 8:19:49 AM6/27/09
to freebsd...@freebsd.org, Alexander Motin, sco...@freebsd.org
On Friday 26 June 2009 20:47:26 Alexander Motin wrote:
> To test our work you should:
> - have any AHCI compatible controller configured to native AHCI mode
> (not a COMPATIBLE or RAID or whatever else) by BIOS;
> - have some Serial ATA/ATAPI drives connected to AHCI controller;
> - patch your recently updated 8-CURRENT with this patch:
> http://people.freebsd.org/~mav/cam-ata.20090626.patch
> - rebuild and install world and kernel;
> - read new ahci man page;
> - make sure that you will be able to boot if your SATA disk devices
> name change from some ad4 to ada0;
> - load ahci kernel module using loader prompt or loader.conf;
> - boot.

Excellent stuff.
I've installed the patch and it works fine. Excerpt from dmesg:

nox# dmesg | grep -E "(ahci|ada|ata)"
ahci0: <AHCI controller> mem 0xfc000000-0xfc001fff irq 19 at device 0.0 on pci3
ahci0: [ITHREAD]
ahci0: AHCI v1.00 controller with 2 3Gbps ports, PM supported
ahcich0: <AHCI channel> at channel 0 on ahci0
ahcich0: [ITHREAD]
ahcich1: <AHCI channel> at channel 1 on ahci0
ahcich1: [ITHREAD]
atapci0: <JMicron JMB363 UDMA133 controller> port 0xb000-0xb007,0xb100-0xb103,0xb200-0xb207,0xb300-0xb303,0xb400-0xb40f irq 16 at device 0.1 on pci3
atapci0: [ITHREAD]
ata2: <ATA channel 0> on atapci0
ata2: [ITHREAD]
ahci1: <AHCI controller> port 0xe600-0xe607,0xe700-0xe703,0xe800-0xe807,0xe900-0xe903,0xea00-0xea1f mem 0xfc106000-0xfc1067ff irq 19 at device 31.2 on pci0
ahci1: [ITHREAD]
ahci1: AHCI v1.20 controller with 6 3Gbps ports, PM supported
ahcich2: <AHCI channel> at channel 0 on ahci1
ahcich2: [ITHREAD]
ahcich3: <AHCI channel> at channel 1 on ahci1
ahcich3: [ITHREAD]
ahcich4: <AHCI channel> at channel 2 on ahci1
ahcich4: [ITHREAD]
ahcich5: <AHCI channel> at channel 3 on ahci1
ahcich5: [ITHREAD]
ahcich6: <AHCI channel> at channel 4 on ahci1
ahcich6: [ITHREAD]
ahcich7: <AHCI channel> at channel 5 on ahci1
ahcich7: [ITHREAD]
(probe1:ahcich1:0:15:0): SIGNATURE: 0000
(probe0:ahcich1:0:0:0): SIGNATURE: 0000
(probe7:ahcich7:0:15:0): SIGNATURE: 0000
(probe0:ahcich7:0:0:0): SIGNATURE: 0000
ada0 at ahcich1 bus 0 target 0 lun 0
ada0: <WDC WD6400AAKS-00A7B0 01.03B01> ATA/ATAPI-8 SATA 2.x device
ada0: 300.000MB/s transfers
ada0: 610479MB (1250261615 512 byte sectors: 16H 63S/T 16383C)
ada0: Native Command Queueing Enabled
ada1 at ahcich7 bus 0 target 0 lun 0
ada1: <WDC WD6400AAKS-00A7B0 01.03B01> ATA/ATAPI-8 SATA 2.x device
ada1: 300.000MB/s transfers
ada1: 610479MB (1250261615 512 byte sectors: 16H 63S/T 16383C)
ada1: Native Command Queueing Enabled

One disk is connected to the AHCI part of the JMicron controller, the other to the
ICH9 controller (motherboard: Gigabyte P35-DS3R). I couldn't connect both disks to
the ICH9 controller because it's BIOS is broken when set to AHCI and refuses to
detect more than one disk. Connecting both disks to the JMicron controller worked
fine. Simple speed tests with dd perform as expected (~200MB/s writes when the two
disks are striped).

However there is a problem with camcontrol:

nox# camcontrol devlist
cam_periph_mapmem: attempt to map 79200 bytes, which is greater than DFLTPHYS(65536)
camcontrol: error sending CAMIOCOMMAND ioctl: Argument list too long

nox# camcontrol inquiry ada0
ahcich1: ahci_ch_intr ERROR is 48000000 cs 00000100 ss 00000000 rs 00000100 tfd 451 serr 00000000

nox# camcontrol inquiry ada1
ahcich7: ahci_ch_intr ERROR is 40000001 cs 00002000 ss 00000000 rs 00002000 tfd 451 serr 00000000


Regards,
Pieter de Goeje

Alexander Leidinger

unread,
Jun 27, 2009, 10:01:48 AM6/27/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
On Sat, 27 Jun 2009 14:22:00 +0300 Alexander Motin <m...@FreeBSD.org>
wrote:


> Alexander Leidinger wrote:
> > On Fri, 26 Jun 2009 21:47:26 +0300 Alexander Motin <m...@FreeBSD.org>
> > wrote:
> >> - make sure that you will be able to boot if your SATA disk
> >> devices name change from some ad4 to ada0;
> >
> > Will it stay at adaX, or is it planned to move it to daX like other
> > harddisks attached via SCSI? If it stays like it is now: what's the
> > rationale to use a different name?
>
> It is still point of discussion. I have arguments for 3 different
> options:
> da - PRO: habitual CAM/SCSI disk name; CONTRA: ATA disk uses
> completely separate ATA-native peripheral driver, it is difficult use
> the same name for two drivers and it IMHO looks ugly:

One could argue that the USB stuff which identifies itself as daX is a
completely separate peripheral driver too, but we have daX for it...

For an user it is not really interesting if it is via ATA, SCSI, or
whatever, if he wants a harddisk, he wants a harddisk and normally does
not care about the transport.

> ad - PRO: habitual ATA disk name; CONTRA: heavily conflicts with
> ATA_STATIC_ID ata(4) option device unit numbering, also the same
> driver name conflict, but a bit easier due to different parent bus;

I agree.

> ada - PRO: perfect from internal infrastructure PoV; CONTRA: just
> unhabitual.

From a personal POV, I do not care much, but from an usability POV I
don't think it's a good idea.

Bye,
Alexander.

Ulrich Spörlein

unread,
Jun 27, 2009, 10:14:12 AM6/27/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
On Fri, 26.06.2009 at 21:47:26 +0300, Alexander Motin wrote:
> [Great stuff]

> - make sure that you will be able to boot if your SATA disk devices
> name change from some ad4 to ada0;

I, personally, think this is not very good idea. People are used to
CAM-devices getting enumerated as da0, da1, etc. All the documentation
talks about ad0 for ATA and da0 (plus camcontrol) for SCSI, USB,
Firewire devices. We also have fd0 and cd0 and should stick to
two-letter-plus-number codes. So either make them all ad0 or da0. I'd
vote for the latter, as that is what Linux is doing (more or less) and
people are already familiar with USB drives or new SATA drives showing
up as "SCSI drives, so they get the SCSI names".

Anyway, thanks for the work and your consideration! The sooner we can
unify the disk drive namespace, the better.

Unrelated question: will it be possible to assign/reserve daX for
specific busses? Like say all USB/Firewire devices will start at da9?

Cheers,
Ulrich Spörlein
--
http://www.dubistterrorist.de/

Kamigishi Rei

unread,
Jun 27, 2009, 10:19:38 AM6/27/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
Hello, hope you're having a nice day,

Ulrich Spörlein wrote:
> I, personally, think this is not very good idea. People are used to
> CAM-devices getting enumerated as da0, da1, etc. All the documentation
> talks about ad0 for ATA and da0 (plus camcontrol) for SCSI, USB,
> Firewire devices. We also have fd0 and cd0 and should stick to
> two-letter-plus-number codes. So either make them all ad0 or da0. I'd
> vote for the latter, as that is what Linux is doing (more or less) and
> people are already familiar with USB drives or new SATA drives showing
> up as "SCSI drives, so they get the SCSI names".
>

This poses the question of daXX enumeration order. I've already had some
'fun' with an IBM server which has an LVD/320 SCSI controller. While the
controller's bus was enumerated properly, somehow if you attach an USB
mass storage device before the system boot that said mass storage could
suddenly appear earlier than one of the SCSI disks (that was on
7.0-RELEASE) thus breaking the boot process sometimes (when it appeared
as da0).

--
Kamigishi Rei
KREI-RIPE

Gary Jennejohn

unread,
Jun 27, 2009, 10:37:32 AM6/27/09
to Kamigishi Rei, FreeBSD-Current
On Sat, 27 Jun 2009 18:19:38 +0400
Kamigishi Rei <spa...@haruhiism.net> wrote:

> This poses the question of daXX enumeration order. I've already had some
> 'fun' with an IBM server which has an LVD/320 SCSI controller. While the
> controller's bus was enumerated properly, somehow if you attach an USB
> mass storage device before the system boot that said mass storage could
> suddenly appear earlier than one of the SCSI disks (that was on
> 7.0-RELEASE) thus breaking the boot process sometimes (when it appeared
> as da0).
>

This is why I always wire down my SCSI devices in devices.hint.

---
Gary Jennejohn

Scott Long

unread,
Jun 27, 2009, 10:42:55 AM6/27/09
to Kamigishi Rei, Alexander Motin, FreeBSD-Current

CAM allows you to statically set the enumeration order via hints in
either the kernel config file or in /boot/loader.conf. /sys/conf/NOTES
contains information and examples of this.

Scott

Gary Jennejohn

unread,
Jun 27, 2009, 10:44:06 AM6/27/09
to Alexander Motin, FreeBSD-Current
On Fri, 26 Jun 2009 21:47:26 +0300
Alexander Motin <m...@FreeBSD.org> wrote:

- remove atapicam from you kernel config file, otherwise the kernel
pancis in xpt (at least, mine did)

> - rebuild and install world and kernel;
> - read new ahci man page;
> - make sure that you will be able to boot if your SATA disk devices
> name change from some ad4 to ada0;
> - load ahci kernel module using loader prompt or loader.conf;
> - boot.

---
Gary Jennejohn

Alexander Motin

unread,
Jun 27, 2009, 12:31:13 PM6/27/09
to Ulrich Spörlein, FreeBSD-Current, sco...@freebsd.org
Ulrich Spörlein wrote:
> On Fri, 26.06.2009 at 21:47:26 +0300, Alexander Motin wrote:
>> [Great stuff]
>> - make sure that you will be able to boot if your SATA disk devices
>> name change from some ad4 to ada0;
>
> I, personally, think this is not very good idea. People are used to
> CAM-devices getting enumerated as da0, da1, etc. All the documentation
> talks about ad0 for ATA and da0 (plus camcontrol) for SCSI, USB,
> Firewire devices.

We should understand difference between transport and command set. SPI,
SAS, USB and FireWire are all just a transports for SCSI commands, and
their disk devices use the same SCSI-command disk driver "da". ATA disks
in this implementation are still use their native ATA commands, without
translating to SCSI. So "ada" is a completely separate driver, operating
disk devices supporting ATA, but _not_ a SCSI, command set.

Whatever name we would use for it, "ada" still will be separate driver.
It is not my whim. IMHO having two drivers with the same name is just a
time bomb, which will create problems in future. If somebody sure that
it won't, I will be glad to hear his technical opinion about how to
manage that properly, for example, in newbus.

> We also have fd0 and cd0 and should stick to
> two-letter-plus-number codes.

We also have a lot of longer disk driver names: aacd, amrd, mmcsd, ...

> So either make them all ad0 or da0. I'd
> vote for the latter, as that is what Linux is doing (more or less) and
> people are already familiar with USB drives or new SATA drives showing
> up as "SCSI drives, so they get the SCSI names".

The main difference is that in our case SATA is not SCSI! We are not
doing any emulation. CAM != SCSI any more! CAM = SCSI + ATA + whatever!

--
Alexander Motin

Alexander Motin

unread,
Jun 27, 2009, 12:55:09 PM6/27/09
to Pieter de Goeje, freebsd...@freebsd.org, sco...@freebsd.org
Pieter de Goeje wrote:
> However there is a problem with camcontrol:
>
> nox# camcontrol devlist
> cam_periph_mapmem: attempt to map 79200 bytes, which is greater than DFLTPHYS(65536)
> camcontrol: error sending CAMIOCOMMAND ioctl: Argument list too long

Thank you for report. I have missed this due to increased DFLTPHYS value
in my kernel. Attached trivial patch fixes that.

> nox# camcontrol inquiry ada0
> ahcich1: ahci_ch_intr ERROR is 48000000 cs 00000100 ss 00000000 rs 00000100 tfd 451 serr 00000000
>
> nox# camcontrol inquiry ada1
> ahcich7: ahci_ch_intr ERROR is 40000001 cs 00002000 ss 00000000 rs 00002000 tfd 451 serr 00000000

This is not a problem. ATA disks does not have SCSI INQUIRY command.
They use own IDENTIFY instead. inquiry should work for ATAPI devices, as
they are SCSI deep inside.

--
Alexander Motin

camcontrol.size.patch

Alexander Motin

unread,
Jun 27, 2009, 1:22:04 PM6/27/09
to gary.je...@freenet.de, FreeBSD-Current
Gary Jennejohn wrote:
> - remove atapicam from you kernel config file, otherwise the kernel
> pancis in xpt (at least, mine did)

Thank you for report. Problem is that atapicam provides fake emulated
SPI transport, but not a native ATA in terms of updated CAM. Small
attached patch fixes this for me:

# camcontrol devlist
<OCZ-VERTEX 1.30> at scbus0 target 0 lun 0 (pass0,ada0)
<Slimtype DVD A DS8A1P CA11> at scbus3 target 0 lun 0 (cd0,pass1)

--
Alexander Motin

atapicam.port.patch

Scott Long

unread,
Jun 27, 2009, 2:06:04 PM6/27/09
to Alexander Motin, Pieter de Goeje, freebsd...@freebsd.org, sco...@freebsd.org
Alexander Motin wrote:
> Pieter de Goeje wrote:
>> However there is a problem with camcontrol:
>>
>> nox# camcontrol devlist
>> cam_periph_mapmem: attempt to map 79200 bytes, which is greater than
>> DFLTPHYS(65536)
>> camcontrol: error sending CAMIOCOMMAND ioctl: Argument list too long
>
> Thank you for report. I have missed this due to increased DFLTPHYS value
> in my kernel. Attached trivial patch fixes that.
>

This should be addressed via multi-part transfers at some point.
Probably ok to leave for now.

>> nox# camcontrol inquiry ada0
>> ahcich1: ahci_ch_intr ERROR is 48000000 cs 00000100 ss 00000000 rs
>> 00000100 tfd 451 serr 00000000
>>
>> nox# camcontrol inquiry ada1
>> ahcich7: ahci_ch_intr ERROR is 40000001 cs 00002000 ss 00000000 rs
>> 00002000 tfd 451 serr 00000000
>
> This is not a problem. ATA disks does not have SCSI INQUIRY command.
> They use own IDENTIFY instead. inquiry should work for ATAPI devices, as
> they are SCSI deep inside.
>

This is really the big missing piece in camcontrol; we need to add
support for getting the IDENT info and getting/setting various
attributes, as well as sending ATA commands over passthrough.

Scott

Daniel O'Connor

unread,
Jun 27, 2009, 7:17:43 PM6/27/09
to freebsd...@freebsd.org, sco...@freebsd.org, Alexander Motin, Kamigishi Rei

7.2 has UFSID in GENERIC so you can mount your disks that way which is
non-ambiguous.

Unfortunately you can't specify swap this way because it has no ID, I
don't know how hard it would be to add such a thing (which would
require a mkswap or somesuch, and modification to the dump & swap
code..)

--
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
"The nice thing about standards is that there
are so many of them to choose from."
-- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C

signature.asc

Mike Tancsa

unread,
Jun 27, 2009, 7:06:08 PM6/27/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
At 02:47 PM 6/26/2009, Alexander Motin wrote:
>Hi.

>To test our work you should:
> - have any AHCI compatible controller configured to native AHCI
> mode (not a COMPATIBLE or RAID or whatever else) by BIOS;
> - have some Serial ATA/ATAPI drives connected to AHCI controller;
> - patch your recently updated 8-CURRENT with this patch:
> http://people.freebsd.org/~mav/cam-ata.20090626.patch
> - rebuild and install world and kernel;
> - read new ahci man page;
> - make sure that you will be able to boot if your SATA disk
> devices name change from some ad4 to ada0;
> - load ahci kernel module using loader prompt or loader.conf;
> - boot.


No luck with an ICH10 board

I did a buildworld/kernel


BTX loader 1.00 BTX version is
1.02
Consoles: internal
video/keyboard
BIOS drive C: is
disk0
BIOS 632kB/3136000kB available
memory

FreeBSD/i386 bootstrap loader, Revision
1.1
(mdta...@i7.sentex.ca, Fri Jun 26 08:24:30 EDT
2009)
**


28 ops 7 bypasses 93 hits 31 misses 1
flushes
Consoles: internal
video/keyboard
BIOS drive C: is
disk0
BIOS 632kB/3136000kB available
memory

FreeBSD/i386 bootstrap loader, Revision
1.1
(mdta...@i7.sentex.ca, Fri Jun 26 08:24:30 EDT
2009)
Can't work out which disk we are booting
from.
Guessed BIOS device 0xffffffff not found by probes, defaulting to
disk0:

can't load
'kernel'

Type '?' for a list of commands, 'help' for more detailed
help.
OK

OK
lsdev
cd
devices:
disk
devices:
disk0: BIOS drive
C:
pxe
devices:
OK


OK
ls
open '/' failed: input/output
error
OK

I tried with both a module and it built into the kernel
but no luck. putting it back into regular IDE mode allows it to boot
with the patched kernel

atapci0: <Intel ICH10 SATA300 controller> port
0xc000-0xc007,0xbc00-0xbc03,0xb880-0xb887,0xb800-0xb803,0xb480-0xb48f,0xb400-0xb40f

irq 19 at device 31.2 on pci0

atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0xb480
atapci0: [MPSAFE]
atapci0: [ITHREAD]
atapci0: Reserved 0x10 bytes for rid 0x24 type 4 at 0xb400


ata2: <ATA channel 0> on atapci0

atapci0: Reserved 0x8 bytes for rid 0x10 type 4 at 0xc000
atapci0: Reserved 0x4 bytes for rid 0x14 type 4 at 0xbc00
ata2: reset tp1 mask=03 ostat0=50 ostat1=10
ata2: stat0=0x50 err=0x01 lsb=0x00 msb=0x00
ata2: stat1=0x00 err=0x01 lsb=0x14 msb=0xeb
ata2: reset tp2 stat0=50 stat1=00 devices=0x20001
ata2: [MPSAFE]
ata2: [ITHREAD]
ata3: <ATA channel 1> on atapci0
atapci0: Reserved 0x8 bytes for rid 0x18 type 4 at 0xb880
atapci0: Reserved 0x4 bytes for rid 0x1c type 4 at 0xb800
ata3: reset tp1 mask=03 ostat0=7f ostat1=7f
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: reset tp2 stat0=ff stat1=ff devices=0x0
ata3: [MPSAFE]
ata3: [ITHREAD]
atapci1: <Intel ICH10 SATA300 controller> port
0xb000-0xb007,0xac00-0xac03,0xa880-0xa887,0xa800-0xa803,0xa480-0xa48f,0xa400-0xa40f
irq 19 at device 31.5 on pci0
atapci1: Reserved 0x10 bytes for rid 0x20 type 4 at 0xa480
atapci1: [MPSAFE]
atapci1: [ITHREAD]
atapci1: Reserved 0x10 bytes for rid 0x24 type 4 at 0xa400
ata4: <ATA channel 0> on atapci1
atapci1: Reserved 0x8 bytes for rid 0x10 type 4 at 0xb000
atapci1: Reserved 0x4 bytes for rid 0x14 type 4 at 0xac00
ata4: reset tp1 mask=03 ostat0=7f ostat1=7f
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata4: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata4: reset tp2 stat0=ff stat1=ff devices=0x0
ata4: [MPSAFE]
ata4: [ITHREAD]

Louis Mamakos

unread,
Jun 27, 2009, 11:56:56 PM6/27/09
to freebsd...@freebsd.org

On Jun 27, 2009, at 7:17 PM, Daniel O'Connor wrote:

> On Sat, 27 Jun 2009, Kamigishi Rei wrote:
>> Hello, hope you're having a nice day,
>>

>> Ulrich Sp�rlein wrote:
>>> I, personally, think this is not very good idea. People are used to
>>> CAM-devices getting enumerated as da0, da1, etc. All the
>>> documentation talks about ad0 for ATA and da0 (plus camcontrol) for
>>> SCSI, USB, Firewire devices. We also have fd0 and cd0 and should
>>> stick to two-letter-plus-number codes. So either make them all ad0
>>> or da0. I'd vote for the latter, as that is what Linux is doing
>>> (more or less) and people are already familiar with USB drives or
>>> new SATA drives showing up as "SCSI drives, so they get the SCSI
>>> names".
>>
>> This poses the question of daXX enumeration order. I've already had
>> some 'fun' with an IBM server which has an LVD/320 SCSI controller.
>> While the controller's bus was enumerated properly, somehow if you
>> attach an USB mass storage device before the system boot that said
>> mass storage could suddenly appear earlier than one of the SCSI disks
>> (that was on 7.0-RELEASE) thus breaking the boot process sometimes
>> (when it appeared as da0).
>
> 7.2 has UFSID in GENERIC so you can mount your disks that way which is
> non-ambiguous.
>
> Unfortunately you can't specify swap this way because it has no ID, I
> don't know how hard it would be to add such a thing (which would
> require a mkswap or somesuch, and modification to the dump & swap
> code..)
>

I use glabel to create containers with named labels that I then
reference as swap devices. (e.g., /dev/label/swap0, etc.)

# swapinfo
Device 1024-blocks Used Avail Capacity
/dev/label/swap2 1044192 0 1044192 0%
/dev/label/swap3 1044192 0 1044192 0%
/dev/label/swap4 1044192 0 1044192 0%
Total 3132576 0 3132576 0%

louie

Daniel O'Connor

unread,
Jun 28, 2009, 1:00:02 AM6/28/09
to freebsd...@freebsd.org
On Sun, 28 Jun 2009, Louis Mamakos wrote:
> > Unfortunately you can't specify swap this way because it has no ID,
> > I don't know how hard it would be to add such a thing (which would
> > require a mkswap or somesuch, and modification to the dump & swap
> > code..)
>
> I use glabel to create containers with named labels that I then
> reference as swap devices. (e.g., /dev/label/swap0, etc.)
>
> # swapinfo
> Device 1024-blocks Used Avail Capacity
> /dev/label/swap2 1044192 0 1044192 0%
> /dev/label/swap3 1044192 0 1044192 0%
> /dev/label/swap4 1044192 0 1044192 0%
> Total 3132576 0 3132576 0%

Ahh, of course, like this?
glabel label swap0 /dev/ad0s1b
(well that works for me but I'd like to check ;)

Any idea if that works with dumping? dumpon accepts it but..

Thanks!

signature.asc

Alexander Motin

unread,
Jun 28, 2009, 3:44:04 AM6/28/09
to Mike Tancsa, FreeBSD-Current, sco...@freebsd.org

I see no any relation to the patch here. I would say it is some
BIOS/loader problem, as kernel wasn't yet booted. Have you been ever
able to boot this system with AHCI enabled before?

--
Alexander Motin

Alexander Motin

unread,
Jun 28, 2009, 3:55:23 AM6/28/09
to Daniel O'Connor, sco...@freebsd.org, freebsd...@freebsd.org, Kamigishi Rei
Daniel O'Connor wrote:
> On Sat, 27 Jun 2009, Kamigishi Rei wrote:
>> This poses the question of daXX enumeration order. I've already had
>> some 'fun' with an IBM server which has an LVD/320 SCSI controller.
>> While the controller's bus was enumerated properly, somehow if you
>> attach an USB mass storage device before the system boot that said
>> mass storage could suddenly appear earlier than one of the SCSI disks
>> (that was on 7.0-RELEASE) thus breaking the boot process sometimes
>> (when it appeared as da0).
>
> 7.2 has UFSID in GENERIC so you can mount your disks that way which is
> non-ambiguous.
>
> Unfortunately you can't specify swap this way because it has no ID, I
> don't know how hard it would be to add such a thing (which would
> require a mkswap or somesuch, and modification to the dump & swap
> code..)

Yes. I've hit this problem. I haven't tried yet, but probably marking
the whole disk with glabel could be an option now.

--
Alexander Motin

Daniel O'Connor

unread,
Jun 28, 2009, 4:28:14 AM6/28/09
to Alexander Motin, sco...@freebsd.org, freebsd...@freebsd.org, Kamigishi Rei
On Sun, 28 Jun 2009, Alexander Motin wrote:
> > 7.2 has UFSID in GENERIC so you can mount your disks that way which
> > is non-ambiguous.
> >
> > Unfortunately you can't specify swap this way because it has no ID,
> > I don't know how hard it would be to add such a thing (which would
> > require a mkswap or somesuch, and modification to the dump & swap
> > code..)
>
> Yes. I've hit this problem. I haven't tried yet, but probably marking
> the whole disk with glabel could be an option now.

Louis' glabel solution works for me so far :)

signature.asc

Gary Jennejohn

unread,
Jun 28, 2009, 5:04:33 AM6/28/09
to Alexander Motin, FreeBSD-Current

Thanks a lot. This patch fixed the problem for me too.

Any plans to update your original patch?

---
Gary Jennejohn

Alexander Motin

unread,
Jun 28, 2009, 5:14:03 AM6/28/09
to gary.je...@freenet.de, FreeBSD-Current

Sure I will in few days. Just not after every single change. I am still
investigating this issue to find real crash reason, that was triggered
by this mistake.

--
Alexander Motin

Aisaka Taiga

unread,
Jun 28, 2009, 5:59:48 AM6/28/09
to Daniel O'Connor, Alexander Motin, freebsd...@freebsd.org, sco...@freebsd.org
Daniel O'Connor wrote:
> Louis' glabel solution works for me so far :)
I've experienced many weird things while trying to use glabel for swap
partitions. I wonder where does GEOM store the label, because doing

glabel create swap /dev/ad0s1b

successfully adds a label, it shows up on boot:

GEOM_LABEL: Label for provider /dev/ad0s1a is label/swap

however, after a while the label is lost. Maybe the metadata is stored
in the last sector of the swap space, and the swap data overwrites it, I
don't know.

There's even funnier thing about UFS labels. Let's say we have a gmirror
device gm0.

# gmirror create -v -b round-robin gm0 /dev/ad0
# gmirror insert gm0 /dev/ad2
# reboot
# tunefs -L root /dev/mirror/gm0s1a
*GEOM_LABEL: Label for provider /dev/mirror/gm0s1a is ufs/root*
# vim /etc/fstab
/dev/ufs/root / ..........
# reboot

It might work for a while, but usually almost on the next boot I see:

ad0: <STwhateverAS SD15> TOOMANYMB on ata0-master SATA300
ad2: <STwhateverAS SD15> TOOMANYMB on ata1-master SATA300
*GEOM_LABEL: Label for provider /dev/ad0s1a is ufs/root*
GEOM_MIRROR: Provider gm0 started (2/2)
Trying to mount root from ufs:/dev/ufs/root...

Manual root filesystem specification:

And the system wants me to enter the root FS name manually because ad0
is locked by GEOM and ad0s1a can't be mounted therefore. GEOM_LABEL
finds the label before GEOM_MIRROR is started properly.

I've experienced this behaviour on both 7.2 and, I think, 8.0 too (May
snapshot).
I know we don't really need labels on a gmirror because a gmirror is a
'label' in itself and will always appear as /dev/mirror/device-name no
matter how we swap HDDs and no matter in which order they are probed,
however this is still a bit strange.

--
Kamigishi Rei
KREI-RIPE

Mike Tancsa

unread,
Jun 28, 2009, 6:54:56 AM6/28/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
At 03:44 AM 6/28/2009, Alexander Motin wrote:

>I see no any relation to the patch here. I would say it is some
>BIOS/loader problem, as kernel wasn't yet booted. Have you been ever
>able to boot this system with AHCI enabled before?

Actually, I had never tried before. It does not work either with a
generic kernel. Its a supermicro board. I will see if I can find a BIOS update

---Mike

Daniel O'Connor

unread,
Jun 28, 2009, 7:08:47 AM6/28/09
to Aisaka Taiga, Alexander Motin, freebsd...@freebsd.org, sco...@freebsd.org
On Sun, 28 Jun 2009, Aisaka Taiga wrote:
> Daniel O'Connor wrote:
> > Louis' glabel solution works for me so far :)
>
> I've experienced many weird things while trying to use glabel for
> swap partitions. I wonder where does GEOM store the label, because
> doing
>
> glabel create swap /dev/ad0s1b
>
> successfully adds a label, it shows up on boot:
>
> GEOM_LABEL: Label for provider /dev/ad0s1a is label/swap
>
> however, after a while the label is lost. Maybe the metadata is
> stored in the last sector of the swap space, and the swap data
> overwrites it, I don't know.

I think you want glabel label swap /dev/ad0s1b

'create' is the manual method which won't store any metadata - 'label'
stores it in the last sector of the provider.

> And the system wants me to enter the root FS name manually because
> ad0 is locked by GEOM and ad0s1a can't be mounted therefore.
> GEOM_LABEL finds the label before GEOM_MIRROR is started properly.
>
> I've experienced this behaviour on both 7.2 and, I think, 8.0 too
> (May snapshot).
> I know we don't really need labels on a gmirror because a gmirror is
> a 'label' in itself and will always appear as /dev/mirror/device-name
> no matter how we swap HDDs and no matter in which order they are
> probed, however this is still a bit strange.

I think if you use label you'd be OK (but you'd need to newfs because
the created provider is 1 sector smaller). The other alternative is to
use /dev/ufsid/xxx which won't require a newfs as your existing FS's
have an ID already (presuming you are using GENERIC).

signature.asc

Aisaka Taiga

unread,
Jun 28, 2009, 7:24:31 AM6/28/09
to Daniel O'Connor, Alexander Motin, freebsd...@freebsd.org, sco...@freebsd.org
Hello, hope you're having a nice day,

Daniel O'Connor wrote:
> I think you want glabel label swap /dev/ad0s1b
>
> 'create' is the manual method which won't store any metadata - 'label'
> stores it in the last sector of the provider.
>

I might be mistaken here as I tried that in May, when I upgraded my
production server to 7.2; I probably tried using the 'label' subcommand
or it wouldn't show up on boot, right? (There was a mistype in my
earlier message; should be "label for provider ad0s1b is label/swap",
not "ad0s1a".)


> I think if you use label you'd be OK (but you'd need to newfs because
> the created provider is 1 sector smaller).

I'll check, though that'd require backing up and reformatting everything.


> The other alternative is to
> use /dev/ufsid/xxx which won't require a newfs as your existing FS's
> have an ID already (presuming you are using GENERIC).

The problem with ufsids is that unlike a manually set label, you can't
really distinguish between them (as opposed to the default scheme of sXY
where for a boot device you can be almost 80% certain that ad0s1a is /,
f is /usr, etc etc - especially if the default number of partitions was
created).

--
Kamigishi Rei
KREI-RIPE

Daniel O'Connor

unread,
Jun 28, 2009, 7:43:24 AM6/28/09
to Aisaka Taiga, Alexander Motin, freebsd...@freebsd.org, sco...@freebsd.org
On Sun, 28 Jun 2009, Aisaka Taiga wrote:
> > 'create' is the manual method which won't store any metadata -
> > 'label' stores it in the last sector of the provider.
>
> I might be mistaken here as I tried that in May, when I upgraded my
> production server to 7.2; I probably tried using the 'label'
> subcommand or it wouldn't show up on boot, right? (There was a
> mistype in my earlier message; should be "label for provider ad0s1b
> is label/swap", not "ad0s1a".)

I guess I'll find out tomorrow when I reboot my laptop and see what
happens.

However, given that it works for Louis you might want to reconsider it.

> > The other alternative is to
> > use /dev/ufsid/xxx which won't require a newfs as your existing
> > FS's have an ID already (presuming you are using GENERIC).
>
> The problem with ufsids is that unlike a manually set label, you
> can't really distinguish between them (as opposed to the default
> scheme of sXY where for a boot device you can be almost 80% certain
> that ad0s1a is /, f is /usr, etc etc - especially if the default
> number of partitions was created).

The UFSID is unique for a given newfs (mostly - it is the timestamp I
believe).

signature.asc

Aisaka Taiga

unread,
Jun 28, 2009, 7:55:02 AM6/28/09
to Daniel O'Connor, Alexander Motin, freebsd...@freebsd.org, sco...@freebsd.org
Hello, hope you're having a nice day,

Daniel O'Connor wrote:
> The UFSID is unique for a given newfs (mostly - it is the timestamp I
> believe).
>
>

It is unique; however, I'm not talking about it being unique. More like
from a console standpoint.
Imagine your system's asking for manual input for the root partition;
what's easier to type - /dev/ufs/root,
/dev/ufsid/{inserthugenumberinhexhere} or /dev/physical-device?
Reading through /etc/fstab when it uses ufsids is a pain as well.

By the way, in my opinion the current freebsd install system should
allow running GEOM commands before partitioning/labelling devices. And
should also recognize GEOM devices, as well, since for a clean install
the transition to labels & gmirror is either 'not safe'
(kern.geom.debugflags=16, then label the live system's drive) OR
requires a dump/restore (label the 2nd drive, label the partitions, then
copy data there, reboot to the 2nd drive, add the first to the mirror).

P.S. Also, bsdlabel and glabel seem like ambiguous names (as well as
using the term 'label' for both slice layout and GEOM labels) - so I see
no problems naming AHCI devices "daX". ;)
--
Kamigishi Rei
KREI-RIPE

Aisaka Taiga

unread,
Jun 28, 2009, 7:55:11 AM6/28/09
to Daniel O'Connor, Alexander Motin, freebsd...@freebsd.org, sco...@freebsd.org
Hello, hope you're having a nice day,

Daniel O'Connor wrote:
> The UFSID is unique for a given newfs (mostly - it is the timestamp I
> believe).
>
>

Carlos A. M. dos Santos

unread,
Jun 28, 2009, 9:50:31 AM6/28/09
to Daniel O'Connor, Kamigishi Rei, Alexander Motin, freebsd...@freebsd.org, sco...@freebsd.org
On Sat, Jun 27, 2009 at 8:17 PM, Daniel O'Connor<doco...@gsoft.com.au> wrote:
[...]

> 7.2 has UFSID in GENERIC so you can mount your disks that way which is
> non-ambiguous.
>
> Unfortunately you can't specify swap this way because it has no ID, I
> don't know how hard it would be to add such a thing (which would
> require a mkswap or somesuch, and modification to the dump & swap
> code..)

You can use glabel to add a label to the raw swap partition. I use to
have a line containing

/dev/label/BSDSWAP none swap sw 0 0

in /etc/fstab.

--
My preferred quotation of Robert Louis Stevenson is "You cannot
make an omelette without breaking eggs". Not because I like the
omelettes, but because I like the sound of eggs being broken.

Daniel O'Connor

unread,
Jun 28, 2009, 10:07:12 AM6/28/09
to Aisaka Taiga, Alexander Motin, freebsd...@freebsd.org, sco...@freebsd.org
On Sun, 28 Jun 2009, Aisaka Taiga wrote:
> Hello, hope you're having a nice day,
>
> Daniel O'Connor wrote:
> > The UFSID is unique for a given newfs (mostly - it is the timestamp
> > I believe).
>
> It is unique; however, I'm not talking about it being unique. More
> like from a console standpoint.
> Imagine your system's asking for manual input for the root partition;
> what's easier to type - /dev/ufs/root,
> /dev/ufsid/{inserthugenumberinhexhere} or /dev/physical-device?

The latter obviously, however that situation is rare, and you can list
the available devices by entering '?'.

> Reading through /etc/fstab when it uses ufsids is a pain as well.

True, but it is not a very common thing to read through it..

> By the way, in my opinion the current freebsd install system should
> allow running GEOM commands before partitioning/labelling devices.
> And should also recognize GEOM devices, as well, since for a clean
> install the transition to labels & gmirror is either 'not safe'
> (kern.geom.debugflags=16, then label the live system's drive) OR
> requires a dump/restore (label the 2nd drive, label the partitions,
> then copy data there, reboot to the 2nd drive, add the first to the
> mirror).

sysinstall is fun like that, it has many limitations..
You might want to try the bsdinstaller snapshots..

> P.S. Also, bsdlabel and glabel seem like ambiguous names (as well as
> using the term 'label' for both slice layout and GEOM labels) - so I
> see no problems naming AHCI devices "daX". ;)

bsdlabel is a historic, and glabel is a fairly intuitive name..

signature.asc

Stanislav Sedov

unread,
Jun 28, 2009, 3:27:08 PM6/28/09
to Daniel O'Connor, freebsd...@freebsd.org
On Sun, 28 Jun 2009 14:30:02 +0930
"Daniel O'Connor" <doco...@gsoft.com.au> mentioned:

> On Sun, 28 Jun 2009, Louis Mamakos wrote:
> > > Unfortunately you can't specify swap this way because it has no ID,
> > > I don't know how hard it would be to add such a thing (which would
> > > require a mkswap or somesuch, and modification to the dump & swap
> > > code..)
> >
> > I use glabel to create containers with named labels that I then
> > reference as swap devices. (e.g., /dev/label/swap0, etc.)
> >
> > # swapinfo
> > Device 1024-blocks Used Avail Capacity
> > /dev/label/swap2 1044192 0 1044192 0%
> > /dev/label/swap3 1044192 0 1044192 0%
> > /dev/label/swap4 1044192 0 1044192 0%
> > Total 3132576 0 3132576 0%
>
> Ahh, of course, like this?
> glabel label swap0 /dev/ad0s1b
> (well that works for me but I'd like to check ;)
>
> Any idea if that works with dumping? dumpon accepts it but..
>

It does for sure.

--
Stanislav Sedov
ST4096-RIPE

Anonymous

unread,
Jun 28, 2009, 6:00:32 PM6/28/09
to Carlos A. M. dos Santos, sco...@freebsd.org, Alexander Motin, freebsd...@freebsd.org, Kamigishi Rei
"Carlos A. M. dos Santos" <unix...@gmail.com> writes:

> On Sat, Jun 27, 2009 at 8:17 PM, Daniel O'Connor<doco...@gsoft.com.au> wrote:
> [...]
>> 7.2 has UFSID in GENERIC so you can mount your disks that way which is
>> non-ambiguous.
>>
>> Unfortunately you can't specify swap this way because it has no ID, I
>> don't know how hard it would be to add such a thing (which would
>> require a mkswap or somesuch, and modification to the dump & swap
>> code..)
>
> You can use glabel to add a label to the raw swap partition. I use to
> have a line containing
>
> /dev/label/BSDSWAP none swap sw 0 0
>
> in /etc/fstab.

Or you can use GPT-specific labels, as well. They would look like

/dev/gpt/swap1
/dev/gptid/adec0ea7-642e-11de-85dc-000476911739

Ulrich Spörlein

unread,
Jun 29, 2009, 6:55:56 AM6/29/09
to Scott Long, Alexander Motin, freebsd...@freebsd.org
On Sat, 27.06.2009 at 12:06:04 -0600, Scott Long wrote:

> Alexander Motin wrote:
> > This is not a problem. ATA disks does not have SCSI INQUIRY command.
> > They use own IDENTIFY instead. inquiry should work for ATAPI devices, as
> > they are SCSI deep inside.
>
> This is really the big missing piece in camcontrol; we need to add
> support for getting the IDENT info and getting/setting various
> attributes, as well as sending ATA commands over passthrough.

Hi Scott,

not sure if this is related, but I always wondered why tools like
smartctl never work with USB attached ATA disks. Is it missing support
in our drivers and smartctl or is it simply impossible?

Cheers,
Ulrich Spörlein
--
http://www.dubistterrorist.de/

Alexander Motin

unread,
Jun 29, 2009, 7:23:56 AM6/29/09
to Scott Long, Ulrich Spörlein, freebsd...@freebsd.org
Ulrich Spörlein wrote:
> On Sat, 27.06.2009 at 12:06:04 -0600, Scott Long wrote:
>> Alexander Motin wrote:
>>> This is not a problem. ATA disks does not have SCSI INQUIRY command.
>>> They use own IDENTIFY instead. inquiry should work for ATAPI devices, as
>>> they are SCSI deep inside.
>> This is really the big missing piece in camcontrol; we need to add
>> support for getting the IDENT info and getting/setting various
>> attributes, as well as sending ATA commands over passthrough.
>
> not sure if this is related, but I always wondered why tools like
> smartctl never work with USB attached ATA disks. Is it missing support
> in our drivers and smartctl or is it simply impossible?

I don't know much about USB storages and protocols used there, but I
think it is the ATA->SCSI protocol conversion done by ATA->USB adapter
limits functionality. If this is correct:
http://en.wikipedia.org/wiki/USB_mass_storage_device_class
, it is impossible to avoid this conversion in common case.

--
Alexander Motin

Ulrich Spörlein

unread,
Jun 29, 2009, 8:54:17 AM6/29/09
to Alexander Motin, freebsd...@freebsd.org

Thanks for the link! I guess my next external HDD will have an eSATA
interface then :/

Scott Long

unread,
Jun 29, 2009, 11:25:19 AM6/29/09
to Scott Long, Alexander Motin, freebsd...@freebsd.org

The possibility depends on several hardware and software factors. If
the USB disk enclosure was speaking ATA all the way up to the umass
driver, then it could be possible to add some extra intelligence to the
driver to make SMART work. However, if the enclosure chip is speaking
anything else, then probably not. As an alternative, you might try to
the ata-usb module instead and see if that works.

Scott

Dan Nelson

unread,
Jun 29, 2009, 12:12:25 PM6/29/09
to Scott Long, Alexander Motin, freebsd...@freebsd.org
In the last episode (Jun 29), Scott Long said:
> Ulrich Spörlein wrote:
> > On Sat, 27.06.2009 at 12:06:04 -0600, Scott Long wrote:
> >> Alexander Motin wrote:
> >>> This is not a problem. ATA disks does not have SCSI INQUIRY command.
> >>> They use own IDENTIFY instead. inquiry should work for ATAPI devices,
> >>> as they are SCSI deep inside.
> >> This is really the big missing piece in camcontrol; we need to add
> >> support for getting the IDENT info and getting/setting various
> >> attributes, as well as sending ATA commands over passthrough.
> >
> > not sure if this is related, but I always wondered why tools like
> > smartctl never work with USB attached ATA disks. Is it missing support
> > in our drivers and smartctl or is it simply impossible?
>
> The possibility depends on several hardware and software factors. If the
> USB disk enclosure was speaking ATA all the way up to the umass driver,
> then it could be possible to add some extra intelligence to the driver to
> make SMART work. However, if the enclosure chip is speaking anything
> else, then probably not. As an alternative, you might try to the ata-usb
> module instead and see if that works.

It also depends heavily on which USB bridge chip is in your external
enclosure. See these links for a table of known good/bad enclosures:

http://smartmontools.wiki.sourceforge.net/USB
http://smartmontools.wiki.sourceforge.net/overview_USB-Support

--
Dan Nelson
dne...@allantgroup.com

Boris S.

unread,
Jun 30, 2009, 6:54:06 AM6/30/09
to Alexander Motin, FreeBSD-Current

I'm using your 29-june patch (including the ALL_SLOTS_BUSY fix) since
yesterday without any problems!

I use GUID partitioned gmirror and zfs on a AMD780G based mainboard.

The only irritating thing is that the zpool now shows gptid's instead of
the partition names.

Boris


ahci0: <AHCI controller> port
0xff00-0xff07,0xfe00-0xfe03,0xfd00-0xfd07,0xfc00-0xfc03,0xfb00-0xfb0f
mem 0xfe02f000-0xfe02f3ff irq 22 at device 17.0 on pci0
ahci0: [ITHREAD]
ahci0: AHCI v1.10 controller with 4 3Gbps ports, PM supported
ahcich0: <AHCI channel> at channel 0 on ahci0
ahcich0: [ITHREAD]
ahcich1: <AHCI channel> at channel 1 on ahci0
ahcich1: [ITHREAD]
ahcich2: <AHCI channel> at channel 2 on ahci0
ahcich2: [ITHREAD]
ahcich3: <AHCI channel> at channel 3 on ahci0
ahcich3: [ITHREAD]
atapci0: <ATI IXP700/800 UDMA133 controller> port
0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfa00-0xfa0f at device 20.1 on pci0
ata0: <ATA channel 0> on atapci0
ata0: [ITHREAD]
ata1: <ATA channel 1> on atapci0
ata1: [ITHREAD]
ahcich0: Poll timeout on slot 2
(probe0:ahcich0:0:0:0): SIGNATURE: 0000
ahcich1: Poll timeout on slot 2
(probe0:ahcich1:0:0:0): SIGNATURE: 0000
ahcich2: Poll timeout on slot 2
(probe0:ahcich2:0:0:0): SIGNATURE: 0000
ada0 at ahcich0 bus 0 target 0 lun 0
ada0: <ST3320620NS 3.AEK> ATA/ATAPI-7 SATA 2.x device
ada0: 300.000MB/s transfers
ada0: 305244MB (625140335 512 byte sectors: 16H 63S/T 16383C)
ada0: Native Command Queueing Enabled
ada1 at ahcich1 bus 0 target 0 lun 0
ada1: <SAMSUNG HD322HJ 1AC01112> ATA/ATAPI-7 SATA 2.x device
ada1: 300.000MB/s transfers
ada1: 305245MB (625142448 512 byte sectors: 16H 63S/T 16383C)
ada1: Native Command Queueing Enabled
ada2 at ahcich2 bus 0 target 0 lun 0
ada2: <ST3320620NS 3.AEG> ATA/ATAPI-7 SATA 2.x device
ada2: 300.000MB/s transfers
ada2: 305245MB (625142448 512 byte sectors: 16H 63S/T 16383C)
ada2: Native Command Queueing Enabled
GEOM_MIRROR: Device mirror/root launched (2/2).
Trying to mount root from ufs:/dev/mirror/root


<ST3320620NS 3.AEK> at scbus0 target 0 lun 0 (pass0,ada0)
<SAMSUNG HD322HJ 1AC01112> at scbus1 target 0 lun 0 (pass1,ada1)
<ST3320620NS 3.AEG> at scbus2 target 0 lun 0 (pass2,ada2)


Name Status Components
mirror/root COMPLETE ada0p2
ada2p2


pool: misc
state: ONLINE
scrub: none requested
config:

NAME STATE READ
WRITE CKSUM
misc ONLINE 0
0 0
gptid/ffcef83e-f18e-11dd-8fe8-001b211c0d18 ONLINE 0
0 0

errors: No known data errors

pool: tank
state: ONLINE
scrub: none requested
config:

NAME STATE READ
WRITE CKSUM
tank ONLINE 0
0 0
mirror ONLINE 0
0 0
gptid/b2dc2050-f080-11dd-8bf7-001b211c0d18 ONLINE 0
0 0
gptid/e7c19e86-f08b-11dd-b26f-001b211c0d18 ONLINE 0
0 0

errors: No known data errors

Mike Tancsa

unread,
Jul 2, 2009, 3:02:10 PM7/2/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
At 03:44 AM 6/28/2009, Alexander Motin wrote:

>I see no any relation to the patch here. I would say it is some
>BIOS/loader problem, as kernel wasn't yet booted. Have you been ever
>able to boot this system with AHCI enabled before?

I re-installed the OS on a new drive with a 200906 snapshot, and can
now boot with AHCI enabled in the BIOS. The original image was a
RELENG_7 box that I upgraded to HEAD some time ago. Is there
something that needs to be manually updated that would not have been
done as part of the normal buildworld/buildkernel ? Re-install the
boot blocks perhaps ?


ahci0: <AHCI controller> port
0xc000-0xc007,0xbc00-0xbc03,0xb880-0xb887,0xb800-0xb803,0xb480-0xb49f
mem 0xfadd6000-0xfadd67ff irq 19 at device 31.2 on pci0
ahci0: [ITHREAD]
ahci0: AHCI v1.20 controller with 6 3Gbps ports, PM not supported


ahcich0: <AHCI channel> at channel 0 on ahci0
ahcich0: [ITHREAD]
ahcich1: <AHCI channel> at channel 1 on ahci0
ahcich1: [ITHREAD]
ahcich2: <AHCI channel> at channel 2 on ahci0
ahcich2: [ITHREAD]
ahcich3: <AHCI channel> at channel 3 on ahci0
ahcich3: [ITHREAD]

ahcich4: <AHCI channel> at channel 4 on ahci0
ahcich4: [ITHREAD]
ahcich5: <AHCI channel> at channel 5 on ahci0
ahcich5: [ITHREAD]

On the ich10 board, its trying to boot up now, but I am getting

uhub8: 4 ports with 4 removable, self powered
(probe2:ahcich2:0:0:0): SIGNATURE: eb14
run_interrupt_driven_hooks: still waiting after 60 seconds for xpt_config
ahcich2: Timeout on slot 4
run_interrupt_driven_hooks: still waiting after 120 seconds for xpt_config
ahcich2: Timeout on slot 5
run_interrupt_driven_hooks: still waiting after 180 seconds for xpt_config
ahcich2: Timeout on slot 6
run_interrupt_driven_hooks: still waiting after 240 seconds for xpt_config
ahcich2: Timeout on slot 7
run_interrupt_driven_hooks: still waiting after 300 seconds for xpt_config
ahcich2: Timeout on slot 8
ada0 at ahcich1 bus 0 target 0 lun 0
ada0: <ST3500410AS CC34> ATA/ATAPI-8 SATA 2.x device
ada0: 300.000MB/s transfers
ada0: 476940MB (976773168 512 byte sectors: 16H 63S/T 16383C)


ada0: Native Command Queueing Enabled


mountroot> ufs:/dev/ada0s1
Trying to mount root from ufs:/dev/ada0s1
GEOM: ada0s1: geometry does not match label (255h,63s != 16h,63s).

And then it hangs there.

---Mike

Alexander Motin

unread,
Jul 2, 2009, 3:33:18 PM7/2/09
to Mike Tancsa, FreeBSD-Current, sco...@freebsd.org
Mike Tancsa wrote:
> At 03:44 AM 6/28/2009, Alexander Motin wrote:
>> I see no any relation to the patch here. I would say it is some
>> BIOS/loader problem, as kernel wasn't yet booted. Have you been ever
>> able to boot this system with AHCI enabled before?
>
> I re-installed the OS on a new drive with a 200906 snapshot, and can now
> boot with AHCI enabled in the BIOS. The original image was a RELENG_7
> box that I upgraded to HEAD some time ago. Is there something that needs
> to be manually updated that would not have been done as part of the
> normal buildworld/buildkernel ? Re-install the boot blocks perhaps ?

mergemaster?
As soon as you are able to run kernel, loaders are fine.

> ahci0: <AHCI controller> port
> 0xc000-0xc007,0xbc00-0xbc03,0xb880-0xb887,0xb800-0xb803,0xb480-0xb49f
> mem 0xfadd6000-0xfadd67ff irq 19 at device 31.2 on pci0
> ahci0: [ITHREAD]
> ahci0: AHCI v1.20 controller with 6 3Gbps ports, PM not supported
> ahcich0: <AHCI channel> at channel 0 on ahci0
> ahcich0: [ITHREAD]
> ahcich1: <AHCI channel> at channel 1 on ahci0
> ahcich1: [ITHREAD]
> ahcich2: <AHCI channel> at channel 2 on ahci0
> ahcich2: [ITHREAD]
> ahcich3: <AHCI channel> at channel 3 on ahci0
> ahcich3: [ITHREAD]
> ahcich4: <AHCI channel> at channel 4 on ahci0
> ahcich4: [ITHREAD]
> ahcich5: <AHCI channel> at channel 5 on ahci0
> ahcich5: [ITHREAD]
>
> On the ich10 board, its trying to boot up now, but I am getting
>
> uhub8: 4 ports with 4 removable, self powered
> (probe2:ahcich2:0:0:0): SIGNATURE: eb14

Looks like you have CD on third SATA channel.

> run_interrupt_driven_hooks: still waiting after 60 seconds for xpt_config
> ahcich2: Timeout on slot 4
> run_interrupt_driven_hooks: still waiting after 120 seconds for xpt_config
> ahcich2: Timeout on slot 5
> run_interrupt_driven_hooks: still waiting after 180 seconds for xpt_config
> ahcich2: Timeout on slot 6
> run_interrupt_driven_hooks: still waiting after 240 seconds for xpt_config
> ahcich2: Timeout on slot 7
> run_interrupt_driven_hooks: still waiting after 300 seconds for xpt_config
> ahcich2: Timeout on slot 8

And this CD does not really wants speak.

> ada0 at ahcich1 bus 0 target 0 lun 0
> ada0: <ST3500410AS CC34> ATA/ATAPI-8 SATA 2.x device
> ada0: 300.000MB/s transfers
> ada0: 476940MB (976773168 512 byte sectors: 16H 63S/T 16383C)
> ada0: Native Command Queueing Enabled
>
> mountroot> ufs:/dev/ada0s1
> Trying to mount root from ufs:/dev/ada0s1
> GEOM: ada0s1: geometry does not match label (255h,63s != 16h,63s).

As soon as GEOM found the label, disk seems to work.

> And then it hangs there.

Can you try to disconnect CD?

--
Alexander Motin

Mike Tancsa

unread,
Jul 2, 2009, 5:20:20 PM7/2/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
At 03:33 PM 7/2/2009, Alexander Motin wrote:

>As soon as GEOM found the label, disk seems to work.

Actually, It went to single user mode on the console (I was logged in
via serial console). However, I could not mount anything for some
reason. Going in /dev, only /dev/ada0 and /dev/ada0s1 were there. The
disk slices were not for some reason. This was on an AMD64 kernel BTW.

But, going back to the original i386 image, with the boot blocks
reinstalled and using your latest patch, it seems to work! (however,
the same 300sec delay due to the cdrom ? )

mountroot> ufs:/dev/ada0s1a
Trying to mount root from ufs:/dev/ada0s1a
dumpon: /dev/ad4s1b: No such file or directory
/etc/rc: WARNING: unable to specify /dev/ad4s1b as a dump device
Entropy harvesting: interrupts ethernet point_to_point kickstart.
swapon: /dev/ad4s1b: No such file or directory
/dev/ada0s1a: FILE SYSTEM CLEAN; SKIPPING CHECKS
/dev/ada0s1a: clean, 259768 free (1048 frags, 32340 blocks, 0.2% fragmentation)
Can't stat /dev/ad4s1d: No such file or directorJul 1 08:07:58 init:
/bin/sh on /etc/rc terminated abnormally, going to single user mode
Enter full pathname of shell or RETURN for /bin/sh:
# ls -l /dev/ad*
crw-r----- 1 root operator 0, 111 Jul 1 08:02 /dev/ada0
crw-r----- 1 root operator 0, 112 Jul 1 08:02 /dev/ada0s1
crw-r----- 1 root operator 0, 113 Jul 1 08:02 /dev/ada0s1a
crw-r----- 1 root operator 0, 114 Jul 1 08:02 /dev/ada0s1b
crw-r----- 1 root operator 0, 115 Jul 1 08:02 /dev/ada0s1d
crw-r----- 1 root operator 0, 116 Jul 1 08:02 /dev/ada0s1e
crw-r----- 1 root operator 0, 117 Jul 1 08:02 /dev/ada0s1f
#

And, after its booted up,

ahci0: <AHCI controller> port
0xc000-0xc007,0xbc00-0xbc03,0xb880-0xb887,0xb800-0xb803,0xb480-0xb49f
mem 0xfadd6000-0xfadd67ff irq 19 at device 31.2 on pci0

ahci0: Reserved 0x800 bytes for rid 0x24 type 3 at 0xfadd6000
ahci0: attempting to allocate 1 MSI vectors (16 supported)
msi: routing MSI IRQ 262 to local APIC 0 vector 64
ahci0: using IRQ 262 for MSI
ahci0: [MPSAFE]


ahci0: [ITHREAD]
ahci0: AHCI v1.20 controller with 6 3Gbps ports, PM not supported

ahci0: Caps: 64bit NCQ SNTF SS ALP AL CLO 3Gbps PMD SSC PSC 32cmd CCC
EM eSATA 6ports


ahcich0: <AHCI channel> at channel 0 on ahci0

ahcich0: [MPSAFE]


ahcich0: [ITHREAD]
ahcich1: <AHCI channel> at channel 1 on ahci0

ahcich1: [MPSAFE]


ahcich1: [ITHREAD]
ahcich2: <AHCI channel> at channel 2 on ahci0

ahcich2: [MPSAFE]


ahcich2: [ITHREAD]
ahcich3: <AHCI channel> at channel 3 on ahci0

ahcich3: [MPSAFE]


ahcich3: [ITHREAD]
ahcich4: <AHCI channel> at channel 4 on ahci0

ahcich4: [MPSAFE]


ahcich4: [ITHREAD]
ahcich5: <AHCI channel> at channel 5 on ahci0

ahcich5: [MPSAFE]
ahcich5: [ITHREAD]


---Mike

Mike Tancsa

unread,
Jul 3, 2009, 9:28:41 AM7/3/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
At 05:20 PM 7/2/2009, Mike Tancsa wrote:

>But, going back to the original i386 image, with the boot blocks
>reinstalled and using your latest patch, it seems to work! (however,
>the same 300sec delay due to the cdrom ? )


At first, I thought something was a miss speed wise, but it looks
like this hardware is either having issues, or something is wrong in
general as its the same no matter which driver is used. Usually the
speeds are much quicker than whats below on block writes


Seeker 1...Seeker 2...Seeker 3...start 'em...done...done...done...
-------Sequential Output-------- ---Sequential Input--
--Random--
-Per Char- --Block--- -Rewrite-- -Per Char- --Block---
--Seeks---
Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU
1 4000 39798 20.8 39725 4.3 17776 3.4 40269 27.1 42085 4.2 255.8 0.6
2 4000 38827 20.3 40116 4.4 18068 3.4 40227 27.3 42266 4.3 244.8 0.5
3 4000 39748 20.8 40166 4.4 17952 3.3 40192 27.3 42259 4.3 243.4 0.5
4 4000 39855 20.8 40066 4.4 18017 3.3 40206 27.1 42401 4.2 264.2 0.6

1=AHCI in bios, AHCI.ko loaded
2=AHCI in bios, plain old ata driver used post patch
3=IDE in bios, plain old ata driver used post patch
4=IDE in bios, plain old ata driver from the cvs

Note, with 2 dmesg shows
acd0: FAILURE - READ_BIG ILLEGAL REQUEST asc=0x64 ascq=0x00
acd0: FAILURE - READ_BIG ILLEGAL REQUEST asc=0x64 ascq=0x00

the boot process then hangs for about 5 seconds, and then proceeds

with 3, the boot process hangs a total of about 2 min.

---Mike

Alexander Motin

unread,
Jul 3, 2009, 9:53:21 AM7/3/09
to Mike Tancsa, FreeBSD-Current, sco...@freebsd.org

This test looks inadequate. there is almost no modern SATA HDDs having
only 40MB/s of linear read/write speed. Usual values now are 60-100MB/s
and they should be reached with almost any working driver. Can you try
simple `dd if=/dev/ada0 of=/dev/null bs=1m count=1000`?

To obtain any measurable benefit from NCQ usage you should have many
random requests to the drive running simultaneously. Not sure how this
specific test works. Also NCQ depends on effective disk firmware to
realize that benefit.

> Note, with 2 dmesg shows
> acd0: FAILURE - READ_BIG ILLEGAL REQUEST asc=0x64 ascq=0x00
> acd0: FAILURE - READ_BIG ILLEGAL REQUEST asc=0x64 ascq=0x00
>
> the boot process then hangs for about 5 seconds, and then proceeds
>
> with 3, the boot process hangs a total of about 2 min.

If you have issues with old driver also, then it is probably some drive
specifics, but not a bug of the new implementation. There was no changes
to the old ATA.

--
Alexander Motin

Mike Tancsa

unread,
Jul 3, 2009, 10:15:26 AM7/3/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
At 09:53 AM 7/3/2009, Alexander Motin wrote:

>This test looks inadequate. there is almost no modern SATA HDDs having
>only 40MB/s of linear read/write speed. Usual values now are 60-100MB/s
>and they should be reached with almost any working driver. Can you try
>simple `dd if=/dev/ada0 of=/dev/null bs=1m count=1000`?


Something about this particular disk perhaps

0[i7]# dd if=/dev/ad4 of=/dev/null bs=1m count=1000
1000+0 records in
1000+0 records out
1048576000 bytes transferred in 14.933896 secs (70214497 bytes/sec)

Using a different seagate disk,

0[i7]# dd if=/dev/ad6 of=/dev/null bs=1m count=1000
1000+0 records in
1000+0 records out
1048576000 bytes transferred in 7.542932 secs (139014377 bytes/sec)
0[i7]#

I will re-run the tests with the newer seagate.

Perhaps a firmware update to the 'slow' one might help


Protocol SATA revision 2.x
device model ST380811AS
serial number 6PS03G9Z
firmware revision 3.AAE
cylinders 16383
heads 16
sectors/track 63
lba supported 156301488 sectors
lba48 supported 156301488 sectors
dma supported
overlap not supported

Feature Support Enable Value Vendor
write cache yes yes
read ahead yes yes
Native Command Queuing (NCQ) yes - 31/0x1F
Tagged Command Queuing (TCQ) no no 31/0x1F
SMART yes yes
microcode download yes yes
security yes no
power management yes yes
advanced power management no no 65278/0xFEFE
automatic acoustic management no no 0/0x00 208/0xD0


>If you have issues with old driver also, then it is probably some drive
>specifics, but not a bug of the new implementation. There was no changes
>to the old ATA.

Yes, it certainly seems so. This DVD is off the PATA bus

0[i7]# atacontrol list
ATA channel 0:
Master: no device present
Slave: no device present
ATA channel 1:
Master: no device present
Slave: no device present
ATA channel 2:
Master: no device present
Slave: acd0 <DVD-ROM UJDA780/1.50> ATA/ATAPI revision 7
ATA channel 3:
Master: ad6 <ST380811AS/3.AAE> SATA revision 2.x
Slave: no device present
ATA channel 4:
Master: no device present
Slave: no device present
ATA channel 5:
Master: no device present
Slave: no device present
0[i7]#


>--
>Alexander Motin
>_______________________________________________
>freebsd...@freebsd.org mailing list
>http://lists.freebsd.org/mailman/listinfo/freebsd-current
>To unsubscribe, send any mail to "freebsd-curre...@freebsd.org"

Alexander Motin

unread,
Jul 3, 2009, 10:26:45 AM7/3/09
to Mike Tancsa, FreeBSD-Current, sco...@freebsd.org
Mike Tancsa wrote:
>> If you have issues with old driver also, then it is probably some drive
>> specifics, but not a bug of the new implementation. There was no changes
>> to the old ATA.
>
> Yes, it certainly seems so. This DVD is off the PATA bus
>
> 0[i7]# atacontrol list
> ATA channel 2:
> Master: no device present
> Slave: acd0 <DVD-ROM UJDA780/1.50> ATA/ATAPI revision 7

Wait! Stop! I have got lost in what we are testing. In some of your your
previous messages today I have seen:

(probe2:ahcich2:0:0:0): SIGNATURE: eb14

run_interrupt_driven_hooks: still waiting after 60 seconds for xpt_config
ahcich2: Timeout on slot 4
run_interrupt_driven_hooks: still waiting after 120 seconds for xpt_config
ahcich2: Timeout on slot 5

First line means that it is ATAPI drive on AHCI SATA controller and
latest lines mean that it is not working properly. Now you are talking
that this is PATA drive. Could you please somehow identify each of your
system to let me identify problems and solutions separately.

--
Alexander Motin

Mike Tancsa

unread,
Jul 3, 2009, 10:32:48 AM7/3/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
At 10:26 AM 7/3/2009, Alexander Motin wrote:

>Wait! Stop! I have got lost in what we are testing. In some of your your
>previous messages today I have seen:

Sorry, I just opened up the case to confirm, and it is indeed a SATA
DVD drive.

---Mike

Alexander Motin

unread,
Jul 3, 2009, 10:49:16 AM7/3/09
to Mike Tancsa, FreeBSD-Current, sco...@freebsd.org

Messages like "it's just not working" will not give anything except
upsetting me. Usually I need more information. So if you are really what
to track and fix some problem, please, identify it somehow, to be able
to send more follow-ups later and compare to different user's results.
Open cases one by one in separate emails.

--
Alexander Motin

Mike Tancsa

unread,
Jul 3, 2009, 3:00:34 PM7/3/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org


Sorry again for the confusion. I am trying a *different* motherboard
(INTEL DX58SO) and drive now with your 0629 patch as well as the diff below.

--- ahci.c.prev 2009-06-29 12:48:45.000000000 +0300
+++ ahci.c 2009-06-29 17:25:29.000000000 +0300
@@ -986,7 +986,7 @@ ahci_begin_transaction(device_t dev, uni
if (ch->slot[tag].state == AHCI_SLOT_EMPTY)
break;
} while (tag != ch->lastslot);
- if (tag == ch->lastslot)
+ if (ch->slot[tag].state != AHCI_SLOT_EMPTY)
device_printf(ch->dev, "ALL SLOTS BUSY!\n");
ch->lastslot = tag;
/* Occupy chosen slot. */


Without the diff, I was getting a steady stream of

ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!
ahcich0: ALL SLOTS BUSY!

With the above diff, all seems to work well.

Full verbose dmesg and pciconf -lvc at

http://www.tancsa.com/ahci/DX58SO.txt


Read/Write speed looks good with a more modern disk as well


-------Sequential Output-------- ---Sequential Input--
--Random--
-Per Char- --Block--- -Rewrite-- -Per Char- --Block---
--Seeks---
Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU

4000 103884 51.4 109344 9.7 42048 6.0 91201 59.0
116723 8.5 1123.4 2.0
0(ich10)# dd if=/dev/ada0 of=/dev/null bs=1m count=1000


1000+0 records in
1000+0 records out

1048576000 bytes transferred in 7.562206 secs (138660068 bytes/sec)
0(ich10)#


The eSata port does not work, but it never did under the old driver
either. I think it has a separate controller ? At the BIOS boot up
time, it shows some Marvell controller talking to the eSata attached
drive, and pciconf does show a separate ATA controller


ahci0@pci0:0:31:2: class=0x010601 card=0x4f538086
chip=0x3a228086 rev=0x00 hdr=0x00
vendor = 'Intel Corporation'
device = '6 port SATA AHCI Controller'
class = mass storage
subclass = SATA
cap 05[80] = MSI supports 16 messages enabled with 1 message
cap 01[70] = powerspec 3 supports D0 D3 current D0
cap 12[a8] = SATA Index-Data Pair
none7@pci0:0:31:3: class=0x0c0500 card=0x4f538086
chip=0x3a308086 rev=0x00 hdr=0x00
vendor = 'Intel Corporation'
device = 'SMB controller (50011458)'
class = serial bus
subclass = SMBus
atapci0@pci0:6:0:0: class=0x01018f card=0x4f538086
chip=0x612111ab rev=0xb2 hdr=0x00
vendor = 'Marvell Semiconductor (Was: Galileo Technology Ltd)'
device = '6121 SATA2 Controller'
class = mass storage
subclass = ATA
cap 01[48] = powerspec 2 supports D0 D1 D3 current D0
cap 05[50] = MSI supports 1 message
cap 10[e0] = PCI-Express 1 legacy endpoint max data 128(128) link x1(x1)

Alexander Motin

unread,
Jul 3, 2009, 3:31:14 PM7/3/09
to Mike Tancsa, FreeBSD-Current, sco...@freebsd.org
Mike Tancsa wrote:
> I am trying a *different* motherboard
> (INTEL DX58SO) and drive now with your 0629 patch as well as the diff
> below.
> With the above diff, all seems to work well.
>
> Full verbose dmesg and pciconf -lvc at
>
> http://www.tancsa.com/ahci/DX58SO.txt

Fine.

> Read/Write speed looks good with a more modern disk as well
>
> -------Sequential Output-------- ---Sequential Input--
> --Random--
> -Per Char- --Block--- -Rewrite-- -Per Char- --Block---
> --Seeks---
> Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU
> /sec %CPU
> 4000 103884 51.4 109344 9.7 42048 6.0 91201 59.0 116723 8.5
> 1123.4 2.0
> 0(ich10)# dd if=/dev/ada0 of=/dev/null bs=1m count=1000
> 1000+0 records in
> 1000+0 records out
> 1048576000 bytes transferred in 7.562206 secs (138660068 bytes/sec)
> 0(ich10)#

Fine. But first test still looks like bound by something. Or this test
requires some tuning, or it is used over file system, your system may
require tuning.

It would be more interesting to investigate benefits on NCQ suitable
workload, as that are new for us. Something like unpacking a lot of
small files to normal or async-mounted or gjournalled FS, or some
multi-threaded read, or something else. Would be nice to understand on
which types of workload NCQ could give us visible effects.

You can track real requests parallelism by looking on dev_active field
of `camcontrol tags ada0 -v`.

> The eSata port does not work, but it never did under the old driver
> either. I think it has a separate controller ? At the BIOS boot up
> time, it shows some Marvell controller talking to the eSata attached
> drive, and pciconf does show a separate ATA controller
>
>
> ahci0@pci0:0:31:2: class=0x010601 card=0x4f538086 chip=0x3a228086
> rev=0x00 hdr=0x00
> vendor = 'Intel Corporation'
> device = '6 port SATA AHCI Controller'
> class = mass storage
> subclass = SATA
> cap 05[80] = MSI supports 16 messages enabled with 1 message
> cap 01[70] = powerspec 3 supports D0 D3 current D0
> cap 12[a8] = SATA Index-Data Pair

As I have noted in man page, "mass storage"/"SATA" is right device.

> atapci0@pci0:6:0:0: class=0x01018f card=0x4f538086 chip=0x612111ab
> rev=0xb2 hdr=0x00
> vendor = 'Marvell Semiconductor (Was: Galileo Technology Ltd)'
> device = '6121 SATA2 Controller'
> class = mass storage
> subclass = ATA
> cap 01[48] = powerspec 2 supports D0 D1 D3 current D0
> cap 05[50] = MSI supports 1 message
> cap 10[e0] = PCI-Express 1 legacy endpoint max data 128(128) link
> x1(x1)

But this device, implementing both PATA and SATA ports, report itself as
PATA controller. It's SATA part may be AHCI compatible, but driver
unable to attach it due to incorrect device identification. Alike
happens to my JMicron controllers, but in that case system BIOS is able
to switch it into the right mode with separate PATA and AHCI SATA
controllers devices.

--
Alexander Motin

Mike Tancsa

unread,
Jul 3, 2009, 5:30:05 PM7/3/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
At 03:31 PM 7/3/2009, Alexander Motin wrote:
>It would be more interesting to investigate benefits on NCQ suitable
>workload, as that are new for us. Something like unpacking a lot of
>small files to normal or async-mounted or gjournalled FS, or some
>multi-threaded read, or something else. Would be nice to understand
>on which types of workload NCQ could give us visible effects.
>
>You can track real requests parallelism by looking on dev_active
>field of `camcontrol tags ada0 -v`.


We dont have too many disk I/O bound apps here. Where we do, we
typically have used raid controllers in RAID10. But I will
experiment a little more over the weekend. For us, we are interested
in large amounts of storage for backup purposes. Having things like
port multiplier features are very nice to have. But I will try some
random io tests to see if I can measure a difference.


>>The eSata port does not work, but it never did under the old driver
>>either. I think it has a separate controller ? At the BIOS boot up
>>time, it shows some Marvell controller talking to the eSata
>>attached drive, and pciconf does show a separate ATA controller

>>atapci0@pci0:6:0:0: class=0x01018f card=0x4f538086
>>chip=0x612111ab rev=0xb2 hdr=0x00
>> vendor = 'Marvell Semiconductor (Was: Galileo Technology Ltd)'
>> device = '6121 SATA2 Controller'
>> class = mass storage
>> subclass = ATA
>> cap 01[48] = powerspec 2 supports D0 D1 D3 current D0
>> cap 05[50] = MSI supports 1 message
>> cap 10[e0] = PCI-Express 1 legacy endpoint max data 128(128) link x1(x1)
>
>But this device, implementing both PATA and SATA ports, report
>itself as PATA controller. It's SATA part may be AHCI compatible,
>but driver unable to attach it due to incorrect device
>identification. Alike happens to my JMicron controllers, but in that
>case system BIOS is able to switch it into the right mode with
>separate PATA and AHCI SATA controllers devices.

Looking in the BIOS, I am able to toggle IDE and RAID mode only for
the eSata controller portion, where as I have IDE, AHCI and RAID for
the onboard Intel controller.

---Mike

Alexander Motin

unread,
Jul 4, 2009, 7:20:56 AM7/4/09
to Mike Tancsa, FreeBSD-Current, sco...@freebsd.org
Mike Tancsa wrote:
> On the ich10 board, its trying to boot up now, but I am getting
>
> uhub8: 4 ports with 4 removable, self powered
> (probe2:ahcich2:0:0:0): SIGNATURE: eb14
> run_interrupt_driven_hooks: still waiting after 60 seconds for xpt_config
> ahcich2: Timeout on slot 4
> run_interrupt_driven_hooks: still waiting after 120 seconds for xpt_config
> ahcich2: Timeout on slot 5
> run_interrupt_driven_hooks: still waiting after 180 seconds for xpt_config
> ahcich2: Timeout on slot 6
> run_interrupt_driven_hooks: still waiting after 240 seconds for xpt_config
> ahcich2: Timeout on slot 7
> run_interrupt_driven_hooks: still waiting after 300 seconds for xpt_config
> ahcich2: Timeout on slot 8
> ada0 at ahcich1 bus 0 target 0 lun 0
> ada0: <ST3500410AS CC34> ATA/ATAPI-8 SATA 2.x device
> ada0: 300.000MB/s transfers
> ada0: 476940MB (976773168 512 byte sectors: 16H 63S/T 16383C)
> ada0: Native Command Queueing Enabled

I've found how to make this DVD work. It refused to process PACKET
command until I have explicitly set it's PATA-legacy transfer mode to
the maximal supported.

%camcontrol devlist
<ST3500410AS CC34> at scbus0 target 0 lun 0 (pass0,ada0)
<MATSHITA DVD-ROM UJDA780 1.50> at scbus2 target 0 lun 0 (cd0,pass1)

Patch committed to P4.

--
Alexander Motin

Harald Schmalzbauer

unread,
Jul 4, 2009, 7:54:36 PM7/4/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
Alexander Motin schrieb am 26.06.2009 20:47 (localtime):
...
> I would like to present for testing and feedback present state of my and
> Scott work on extending CAM subsystem to support ATA in addition to
> SCSI. At this moment we have:
...
> - patch your recently updated 8-CURRENT with this patch:
> http://people.freebsd.org/~mav/cam-ata.20090626.patch
> - rebuild and install world and kernel;
> - read new ahci man page;
> - make sure that you will be able to boot if your SATA disk devices
> name change from some ad4 to ada0;
...
> Waiting for your feedback.

Late, but now I'd like to jump in.

I have a gournaled FS whoch lists it's consumer as ad12p6
Otherwise I only use labels (ufs) for quiet some time, so I thought
testing would be painless...
Can I safely remove glabel from the unmounted fs and relabel the new device?

Any Experiences?

Thanks,

-Harry

signature.asc

Mike Tancsa

unread,
Jul 4, 2009, 8:33:06 PM7/4/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
At 05:30 PM 7/3/2009, Mike Tancsa wrote:
>At 03:31 PM 7/3/2009, Alexander Motin wrote:
>>It would be more interesting to investigate benefits on NCQ
>>suitable workload, as that are new for us. Something like unpacking
>>a lot of small files to normal or async-mounted or gjournalled FS,
>>or some multi-threaded read, or something else. Would be nice to
>>understand on which types of workload NCQ could give us visible effects.
>>
>>You can track real requests parallelism by looking on dev_active
>>field of `camcontrol tags ada0 -v`.
>
>
>We dont have too many disk I/O bound apps here. Where we do, we
>typically have used raid controllers in RAID10. But I will
>experiment a little more over the weekend. For us, we are
>interested in large amounts of storage for backup purposes. Having
>things like port multiplier features are very nice to have. But I
>will try some random io tests to see if I can measure a difference.


I hooked up a Vantec eSata enclosure using a SATA to eSATA cable off
the main motherboard. One small difference I noticed is that
camcontrol does not get the info from the drive like it does on other
devices. Perhaps thats the enclosure messing things up ?

0(ich10)# camcontrol identify ada2
pass2: < > ATA/ATAPI-0 device

Protocol ATA/ATAPI revision 0
device model
serial number
firmware revision
cylinders 0
heads 0
sectors/track 0
lba not supported
lba48 not supported
dma not supported
overlap not supported

Feature Support Enable Value Vendor

write cache no no
read ahead no no
Tagged Command Queuing (TCQ) no no 0/0x00
SMART no no
microcode download no no
security no no
power management no no
advanced power management no no 0/0x00
automatic acoustic management no no 0/0x00 0/0x00
0(ich10)#

0(ich10)# camcontrol identify ada1
pass1: <ST380811AS 3.AAE> ATA/ATAPI-7 SATA 2.x device

Protocol SATA revision 2.x
device model ST380811AS
serial number 6PS03G9Z
firmware revision 3.AAE
cylinders 16383
heads 16
sectors/track 63
lba supported 156301488 sectors
lba48 supported 156301488 sectors
dma supported
overlap not supported

Feature Support Enable Value Vendor
write cache yes yes
read ahead yes yes
Native Command Queuing (NCQ) yes - 31/0x1F
Tagged Command Queuing (TCQ) no no 31/0x1F
SMART yes yes
microcode download yes yes
security yes no
power management yes yes
advanced power management no no 65278/0xFEFE
automatic acoustic management no no 0/0x00 208/0xD0

0(ich10)# camcontrol identify ada0
pass0: <ST3500410AS CC34> ATA/ATAPI-8 SATA 2.x device

Protocol SATA revision 2.x
device model ST3500410AS
serial number 5VM0X6FG
firmware revision CC34


cylinders 16383
heads 16
sectors/track 63

lba supported 268435455 sectors
lba48 supported 976773168 sectors


dma supported
overlap not supported

Feature Support Enable Value Vendor
write cache yes yes
read ahead yes yes
Native Command Queuing (NCQ) yes - 31/0x1F
Tagged Command Queuing (TCQ) no no 31/0x1F
SMART yes yes
microcode download yes yes
security yes no
power management yes yes

advanced power management no no 0/0x00
automatic acoustic management yes yes 0/0x00 254/0xFE
0(ich10)#

There was a previous drive connected. We powered off the external
drive, disconnected the cable, hooked up the new drive, powered up
the enclosure and then I did a camcontrol rescan all

Jul 4 20:19:22 ich10 kernel: (ada2:ahcich2:0:0:0): lost device
Jul 4 20:19:22 ich10 kernel: (ada2:ahcich2:0:0:0): removing device entry
Jul 4 20:19:37 ich10 kernel: (probe0:ahcich2:0:0:0): SIGNATURE: 0000
Jul 4 20:19:37 ich10 kernel: ada2 at ahcich2 bus 0 target 0 lun 0
Jul 4 20:19:37 ich10 kernel: ada2: <ST3750330AS SD15> ATA/ATAPI-8
SATA 1.x device
Jul 4 20:19:37 ich10 kernel: ada2: 150.000MB/s transfers
Jul 4 20:19:37 ich10 kernel: ada2: 715404MB (1465149168 512 byte
sectors: 16H 63S/T 16383C)
Jul 4 20:19:37 ich10 kernel: ada2: Native Command Queueing Enabled

The drive we connected has some bad sectors, so I wanted to try a
secure wipe as much as possible before RMAing the drive. I also
thought it would be useful to test with the new driver how it handles bad disks

Is this such an error ?

Jul 4 20:25:57 ich10 kernel: ahcich2: ahci_ch_intr ERROR is 40000001
cs 00000004 ss 00000000 rs 00000004 tfd 451 serr 00000000

---Mike

Scott Long

unread,
Jul 4, 2009, 11:02:25 PM7/4/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org, Mike Tancsa

I mentioned this a few months ago. Both atapi and ata devices need a
state machine to set their max transfer parameters, regardless if they
are sata or pata. Newer sata devices might not need it, but older
ones definitely do. IMHO, it's easiest to just do the negotiation for
all sata devices instead of trying to be selective about it.

Scott

Alexander Motin

unread,
Jul 5, 2009, 2:41:16 AM7/5/09
to Mike Tancsa, FreeBSD-Current, sco...@freebsd.org
Mike Tancsa wrote:
> I hooked up a Vantec eSata enclosure using a SATA to eSATA cable off the
> main motherboard. One small difference I noticed is that camcontrol
> does not get the info from the drive like it does on other devices.
> Perhaps thats the enclosure messing things up ?
>
> 0(ich10)# camcontrol identify ada2
> pass2: < > ATA/ATAPI-0 device

That's strange. IDENTIFY is a basic ATA command, which must work always.

> There was a previous drive connected. We powered off the external
> drive, disconnected the cable, hooked up the new drive, powered up the
> enclosure and then I did a camcontrol rescan all
>
> Jul 4 20:19:22 ich10 kernel: (ada2:ahcich2:0:0:0): lost device
> Jul 4 20:19:22 ich10 kernel: (ada2:ahcich2:0:0:0): removing device entry
> Jul 4 20:19:37 ich10 kernel: (probe0:ahcich2:0:0:0): SIGNATURE: 0000
> Jul 4 20:19:37 ich10 kernel: ada2 at ahcich2 bus 0 target 0 lun 0
> Jul 4 20:19:37 ich10 kernel: ada2: <ST3750330AS SD15> ATA/ATAPI-8 SATA
> 1.x device
> Jul 4 20:19:37 ich10 kernel: ada2: 150.000MB/s transfers
> Jul 4 20:19:37 ich10 kernel: ada2: 715404MB (1465149168 512 byte
> sectors: 16H 63S/T 16383C)
> Jul 4 20:19:37 ich10 kernel: ada2: Native Command Queueing Enabled

Looking to this, it was working.

> The drive we connected has some bad sectors, so I wanted to try a secure
> wipe as much as possible before RMAing the drive. I also thought it
> would be useful to test with the new driver how it handles bad disks
>
> Is this such an error ?
>
> Jul 4 20:25:57 ich10 kernel: ahcich2: ahci_ch_intr ERROR is 40000001 cs
> 00000004 ss 00000000 rs 00000004 tfd 451 serr 00000000

This is AHCI driver debugging. I've removed it in latest patch. In this
case it means that drive signals some command error.

--
Alexander Motin

Alexander Motin

unread,
Jul 5, 2009, 3:18:00 AM7/5/09
to Harald Schmalzbauer, FreeBSD-Current, sco...@freebsd.org
Harald Schmalzbauer wrote:
> Late, but now I'd like to jump in.

It's never late. I have just uploaded fresh patch:
http://people.freebsd.org/~mav/cam-ata.20090704.patch

> I have a gournaled FS whoch lists it's consumer as ad12p6

You mean gjournal has provider names hardcoded to it's meta data? It
could be a problem. If it detects it's parts freely, then it should not
notice the change.

> Otherwise I only use labels (ufs) for quiet some time, so I thought
> testing would be painless...
> Can I safely remove glabel from the unmounted fs and relabel the new
> device?

I don't very understand whet you mean by "safe"? Safe for what?

--
Alexander Motin

Mike Tancsa

unread,
Jul 5, 2009, 7:29:05 AM7/5/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
At 02:41 AM 7/5/2009, Alexander Motin wrote:

>>The drive we connected has some bad sectors, so I wanted to try a
>>secure wipe as much as possible before RMAing the drive. I also
>>thought it would be useful to test with the new driver how it handles bad disks
>>Is this such an error ?
>>Jul 4 20:25:57 ich10 kernel: ahcich2: ahci_ch_intr ERROR is
>>40000001 cs 00000004 ss 00000000 rs 00000004 tfd 451 serr 00000000
>
>This is AHCI driver debugging. I've removed it in latest patch. In
>this case it means that drive signals some command error.


Actually, looks like the box panic'd, but it seems to be
elsewhere. After hitting the bad sectors for some time,

g_vfs_done():ada2[WRITE(offset=6193152, length=14336)]error = 5
ahcich2: Timeout on slot 17


ahcich2: Timeout on slot 5

ahcich2: Timeout on slot 25
ahcich2: Timeout on slot 13
ahcich2: Timeout on slot 1
g_vfs_done():ada2[WRITE(offset=65536, length=2048)]error = 5
ahcich2: Timeout on slot 21


ahcich2: Timeout on slot 8

ahcich2: Timeout on slot 27
ahcich2: Timeout on slot 14
ahcich2: Timeout on slot 1
g_vfs_done():ada2[WRITE(offset=98304, length=16384)]error = 5
panic: softdep_move_dependencies: need merge code
cpuid = 0
Uptime: 2h25m8s
(ada2:ahcich2:0:0:0): Synchronize cache failed
Physical memory: 3560 MB
Dumping 218 MB: 203 187 171 155 139 123 107 91 75 59 43 27 11

Reading symbols from /boot/kernel/ahci.ko...Reading symbols from
/boot/kernel/ahci.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ahci.ko
Reading symbols from /boot/kernel/ichwd.ko...Reading symbols from
/boot/kernel/ichwd.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ichwd.ko
#0 doadump () at pcpu.h:246
246 pcpu.h: No such file or directory.
in pcpu.h
(kgdb) #0 doadump () at pcpu.h:246
#1 0xc0812787 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:419
#2 0xc0812a79 in panic (fmt=Variable "fmt" is not available.
) at /usr/src/sys/kern/kern_shutdown.c:575
#3 0xc0a354d4 in softdep_move_dependencies (oldbp=0xdaede7f0,
newbp=0xdaec2c50) at /usr/src/sys/ufs/ffs/ffs_softdep.c:991
#4 0xc0a3d48e in ffs_backgroundwritedone (bp=0xdaede7f0)
at /usr/src/sys/ufs/ffs/ffs_vfsops.c:1756
#5 0xc08854d7 in bufdone (bp=0xdaede7f0) at /usr/src/sys/kern/vfs_bio.c:3254
#6 0xc07b3765 in g_vfs_done (bip=0xc7d68c94)
at /usr/src/sys/geom/geom_vfs.c:97
#7 0xc087faa9 in biodone (bp=0xc7d68c94) at /usr/src/sys/kern/vfs_bio.c:3095
#8 0xc07b0c0f in g_io_schedule_up (tp=0xc6e8f240)
at /usr/src/sys/geom/geom_io.c:669
#9 0xc07b0fc8 in g_up_procbody () at /usr/src/sys/geom/geom_kern.c:95
#10 0xc07e8421 in fork_exit (callout=0xc07b0f60 <g_up_procbody>, arg=0x0,
frame=0xc6937d38) at /usr/src/sys/kern/kern_fork.c:842
#11 0xc0b180a0 in fork_trampoline () at /usr/src/sys/i386/i386/exception.s:270


b. f.

unread,
Jul 5, 2009, 4:48:32 AM7/5/09
to freebsd...@freebsd.org
Alexander Motin wrote:
>Harald Schmalzbauer wrote:

>> I have a gournaled FS whoch lists it's consumer as ad12p6

>You mean gjournal has provider names hardcoded to it's meta data? It
>could be a problem. If it detects it's parts freely, then it should not
>notice the change.

I just changed provider names for a gjournal'ed disk when my disks
were reordered, and with the proper corresponding changes to fstab,
there were no problems -- everything was mounted and loaded upon
reboot without me having to make any other changes. However, if you
used the "-h" option with "gjournal label" you may have to manually
relabel.

>> Otherwise I only use labels (ufs) for quiet some time, so I thought
>> testing would be painless...
>> Can I safely remove glabel from the unmounted fs and relabel the new
>> device?

>I don't very understand whet you mean by "safe"? Safe for what?

He means, can he relabel the disks without losing any data on them?

I think that the answer is yes, provided he doesn't do anything
foolish -- like relabel an existing file system with journal and data
on the same provider, while increasing the size of the journal, which
would cause all data on the space allocated to the new journal to be
lost. He may have to use the "-f" flag with "gjournal label", or
issue "gjournal clear" before relabeling, and he may lose the last
sector of the file system and anything on the journal, but that
usually isn't of any consequence. In any event, unless he hardcoded
his provider names, this probably isn't necessary. If it does prove
to be necessary, it would be wise to back up any data just to be safe,
and to experiment on a test provider first, before trying to relabel.

b.

Mike Tancsa

unread,
Jul 5, 2009, 12:24:45 PM7/5/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
At 07:29 AM 7/5/2009, Mike Tancsa wrote:
>At 02:41 AM 7/5/2009, Alexander Motin wrote:
>
>>>The drive we connected has some bad sectors, so I wanted to try a
>>>secure wipe as much as possible before RMAing the drive. I also
>>>thought it would be useful to test with the new driver how it handles bad disks
>>>Is this such an error ?
>>>Jul 4 20:25:57 ich10 kernel: ahcich2: ahci_ch_intr ERROR is
>>>40000001 cs 00000004 ss 00000000 rs 00000004 tfd 451 serr 00000000
>>
>>This is AHCI driver debugging. I've removed it in latest patch. In
>>this case it means that drive signals some command error.
>
>
>Actually, looks like the box panic'd, but it seems to be
>elsewhere. After hitting the bad sectors for some time,

Here is another with invariants compiled in. Again, this is writing
to a disk that has bad sectors and is failing, so not sure if this is
a case of "dont do that"

---Mike

Synchronize cache failed
Physical memory: 3556 MB
Dumping 223 MB:ahcich2: ahci_ch_intr ERROR is 40000008 cs 00000000 ss
00010000 rs 00010000 tfd 441 serr 00000000


Fatal trap 12: page fault while in kernel mode
cpuid = 4; apic id = 04
fault virtual address = 0xb68dc371
fault code = supervisor read, page not present
ahcich2: Error while READ LOG EXT
ahcich2: ahci_ch_intr ERROR is 40000008 cs 00000000 ss 00000400 rs
00000400 tfd 441 serr 00000000
ahcich2: ahci_ch_intr ERROR is 40000001 cs 00000800 ss 00000000 rs
00000800 tfd 471 serr 00000000
ahcich2: Error while READ LOG EXT
ahcich2: ahci_ch_intr ERROR is 40000008 cs 00000000 ss 00001000 rs
00001000 tfd 441 serr 00000000
ahcich2: ahci_ch_intr ERROR is 40000001 cs 00002000 ss 00000000 rs
00002000 tfd 471 serr 00000000
ahcich2: Error while READ LOG EXT
ahcich2: ahci_ch_intr ERROR is 40000008 cs 00000000 ss 00004000 rs
00004000 tfd 441 serr 00000000
panic: initiate_write_inodeblock_ufs2: already started
cpuid = 6
Uptime: 1h13m8s
ahcich2: ahci_ch_intr ERROR is 40000001 cs 00008000 ss 00000000 rs
00008000 tfd 471 serr 00000000
ahcich2: Error while READ LOG EXT
(ada2:g_vfs_done():ahcich2:0:ada2[READ(offset=56068767744,
length=16384)]0:error = 50):
Synchronize cache failed
Physical memory: 3556 MB
Dumping 223 MB:ahcich2: ahci_ch_intr ERROR is 40000008 cs 00000000 ss
00010000 rs 00010000 tfd 441 serr 00000000


Fatal trap 12: page fault while in kernel mode
cpuid = 4; apic id = 04
fault virtual address = 0xb68dc371
fault code = supervisor read, page not present
instruction pointer = 0x20:0xc047f02b
stack pointer = 0x28:0xc6e69bf0
frame pointer = 0x28:0xc6e69c08
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 = 12 (irq257: ahci0)
trap number = 12
208 192 176 160 144 128 112 96 80 64 48 32 16

Reading symbols from /boot/kernel/ahci.ko...Reading symbols from
/boot/kernel/ahci.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ahci.ko
Reading symbols from /boot/kernel/ichwd.ko...Reading symbols from
/boot/kernel/ichwd.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ichwd.ko
#0 doadump () at pcpu.h:246
246 pcpu.h: No such file or directory.
in pcpu.h
(kgdb) #0 doadump () at pcpu.h:246

#1 0xc086c59e in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:419
#2 0xc086c839 in panic (fmt=Variable "fmt" is not available.
) at /usr/src/sys/kern/kern_shutdown.c:575
#3 0xc0a87a1e in softdep_disk_io_initiation (bp=0xdb115fe0)
at /usr/src/sys/ufs/ffs/ffs_softdep.c:4056
#4 0xc0a8b98c in ffs_geom_strategy (bo=0xc810fc2c, bp=0xdb115fe0)
at buf.h:404
#5 0xc08e1b79 in bufwrite (bp=0xdb115fe0) at buf.h:397
#6 0xc0a8b0bb in ffs_bufwrite (bp=0xdb115fe0)
at /usr/src/sys/ufs/ffs/ffs_vfsops.c:1893
#7 0xc08ded28 in vfs_bio_awrite (bp=0xdb115fe0) at buf.h:385
#8 0xc08e851b in vop_stdfsync (ap=0xe77a8c7c)
at /usr/src/sys/kern/vfs_default.c:608
#9 0xc07f31cc in devfs_fsync (ap=0xe77a8c7c)
at /usr/src/sys/fs/devfs/devfs_vnops.c:556
#10 0xc0b8fb95 in VOP_FSYNC_APV (vop=0xc0d1a020, a=0xe77a8c7c)
at vnode_if.c:1267
#11 0xc08f8308 in sync_vnode (slp=0xc76a27e4, bo=0xe77a8ce8, td=0xc78ad6c0)
at vnode_if.h:549
#12 0xc08f8653 in sched_sync () at /usr/src/sys/kern/vfs_subr.c:1799
#13 0xc0843f78 in fork_exit (callout=0xc08f83e0 <sched_sync>, arg=0x0,
frame=0xe77a8d38) at /usr/src/sys/kern/kern_fork.c:842
#14 0xc0b677b0 in fork_trampoline () at /usr/src/sys/i386/i386/exception.s:270
(kgdb)

Mike Tancsa

unread,
Jul 6, 2009, 5:20:45 PM7/6/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
At 02:41 AM 7/5/2009, Alexander Motin wrote:
>>Jul 4 20:25:57 ich10 kernel: ahcich2: ahci_ch_intr ERROR is
>>40000001 cs 00000004 ss 00000000 rs 00000004 tfd 451 serr 00000000
>
>This is AHCI driver debugging. I've removed it in latest patch. In
>this case it means that drive signals some command error.


Hi,

With the latest patch (cam-ata.20090704.patch), writing to the disk
with physical errors looks like this now

Jul 6 13:56:17 ich10 last message repeated 4 times
Jul 6 13:56:17 ich10 kernel:
g_vfs_done():ada2[READ(offset=42003431424, length=16384)]error = 5
Jul 6 13:56:17 ich10 kernel: ahcich2: Error while READ LOG EXT
Jul 6 13:56:17 ich10 last message repeated 4 times
Jul 6 13:56:17 ich10 kernel:
g_vfs_done():ada2[READ(offset=42196107264, length=16384)]error = 5
Jul 6 13:56:17 ich10 kernel: ahcich2: Error while READ LOG EXT
Jul 6 13:56:17 ich10 last message repeated 4 times
Jul 6 13:56:17 ich10 kernel:
g_vfs_done():ada2[READ(offset=42388783104, length=16384)]error = 5
Jul 6 13:56:17 ich10 kernel: ahcich2: Error while READ LOG EXT
Jul 6 13:56:17 ich10 last message repeated 4 times
Jul 6 13:56:17 ich10 kernel:
g_vfs_done():ada2[READ(offset=42581458944, length=16384)]error = 5
Jul 6 13:56:17 ich10 kernel: ahcich2: Error while READ LOG EXT
Jul 6 13:56:17 ich10 last message repeated 4 times
Jul 6 13:56:17 ich10 kernel:
g_vfs_done():ada2[READ(offset=42774134784, length=16384)]error = 5
Jul 6 13:56:17 ich10 kernel: ahcich2: Error while READ LOG EXT
Jul 6 13:56:18 ich10 last message repeated 4 times
Jul 6 13:56:18 ich10 kernel:
g_vfs_done():ada2[READ(offset=42966810624, length=16384)]error = 5
Jul 6 13:56:18 ich10 kernel: ahcich2: Error while READ LOG EXT
Jul 6 13:56:18 ich10 last message repeated 4 times

Still the box does a panic when writing to the disk that has bad
sectors on it. (I do newfs it between reboots). Again, not sure if
this is a "well, dont use a bad disk", but here is the panic again in
case it shows something useful.


Unread portion of the kernel message buffer:


ahcich2: Error while READ LOG EXT
ahcich2: Error while READ LOG EXT

g_vfs_done():ada2s1d[READ(offset=36418928640, length=16384)]error = 5


ahcich2: Error while READ LOG EXT
ahcich2: Error while READ LOG EXT
ahcich2: Error while READ LOG EXT

panic: initiate_write_inodeblock_ufs2: already started
cpuid = 6

Uptime: 5m55s


ahcich2: Error while READ LOG EXT

(ada2:ahcich2:0:0:0): Synchronize cache failed
Physical memory: 3556 MB
Dumping 220 MB:

Fatal trap 12: page fault while in kernel mode
cpuid = 4; apic id = 04

fault virtual address = 0xb0014


fault code = supervisor read, page not present

instruction pointer = 0x20:0xc047f14b
stack pointer = 0x28:0xc6e69c08
frame pointer = 0x28:0xc6e69c20


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 = 12 (irq257: ahci0)
trap number = 12

205 189 173 157 141 125 109 93 77 61 45 29 13

Reading symbols from /boot/kernel/ahci.ko...Reading symbols from
/boot/kernel/ahci.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ahci.ko

#0 doadump () at pcpu.h:246
246 pcpu.h: No such file or directory.
in pcpu.h
(kgdb) #0 doadump () at pcpu.h:246

#1 0xc086ca3e in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:419
#2 0xc086ccd9 in panic (fmt=Variable "fmt" is not available.
) at /usr/src/sys/kern/kern_shutdown.c:575
#3 0xc0a87ebe in softdep_disk_io_initiation (bp=0xdb2bbf60)
at /usr/src/sys/ufs/ffs/ffs_softdep.c:4056
#4 0xc0a8be2c in ffs_geom_strategy (bo=0xc803c2c0, bp=0xdb2bbf60)
at buf.h:404
#5 0xc08e2019 in bufwrite (bp=0xdb2bbf60) at buf.h:397
#6 0xc0a8b55b in ffs_bufwrite (bp=0xdb2bbf60)
at /usr/src/sys/ufs/ffs/ffs_vfsops.c:1893
#7 0xc08df1c8 in vfs_bio_awrite (bp=0xdb2bbf60) at buf.h:385
#8 0xc08e89bb in vop_stdfsync (ap=0xe7798c7c)
at /usr/src/sys/kern/vfs_default.c:608
#9 0xc07f366c in devfs_fsync (ap=0xe7798c7c)
at /usr/src/sys/fs/devfs/devfs_vnops.c:556
#10 0xc0b90095 in VOP_FSYNC_APV (vop=0xc0d1a580, a=0xe7798c7c)
at vnode_if.c:1267
#11 0xc08f87a8 in sync_vnode (slp=0xc76a27f4, bo=0xe7798ce8, td=0xc78ad6c0)
at vnode_if.h:549
#12 0xc08f8af3 in sched_sync () at /usr/src/sys/kern/vfs_subr.c:1799
#13 0xc0844418 in fork_exit (callout=0xc08f8880 <sched_sync>, arg=0x0,
frame=0xe7798d38) at /usr/src/sys/kern/kern_fork.c:842
#14 0xc0b67cb0 in fork_trampoline () at /usr/src/sys/i386/i386/exception.s:270
(kgdb)


Unless you would like me to test some other features of the driver, I
will just RMA the drive tomorrow.

---Mike

Scott Long

unread,
Jul 6, 2009, 5:24:57 PM7/6/09
to Mike Tancsa, Alexander Motin, FreeBSD-Current, sco...@freebsd.org

This is a 'don't use a bad disk' panic; FreeBSD UFS and VM simply can't
handle errors on reads or writes.

Scott

Juergen Lock

unread,
Jul 6, 2009, 5:16:46 PM7/6/09
to m...@freebsd.org, freebsd...@freebsd.org
In article <4A50C331...@FreeBSD.org> you write:
>Lucius Windschuh wrote:
>> Hi Alexander.
>>
>> 2009/7/5 Alexander Motin <m...@freebsd.org>:

>>> It's never late. I have just uploaded fresh patch:
>>> http://people.freebsd.org/~mav/cam-ata.20090704.patch
>>
>> "make buildworld" with this patch stops in my configuration with:
>>
>> /usr/obj/usr/src/tmp/usr/lib/libcam.a(ata_all.o)(.text+0x263): In
>> function `ata_max_mode':
>> : undefined reference to `min'
>>
>> Simply adding
>> #ifndef min
>> #define min(a,b) (((a)<(b))?(a):(b))
>> #endif
>> in ata_all.c helps, obviously.
>
>Thanks.

I tried this on the box with that optical drive that head no
longer likes (fails to be probed and generates an irq storm, see
http://docs.freebsd.org/cgi/mid.cgi?20090628101656.GA38983
), and with ahci.ko loaded by loader.conf I got timeouts followed by
a panic:
http://people.freebsd.org/~nox/cam-ata.20090704-panic1.jpg
http://people.freebsd.org/~nox/cam-ata.20090704-panic2.jpg

The panic seems to be in cam_periph_lock:

(kgdb) l *(cdioctl+0x4e)
0xffffffff801a937e is in cdioctl (cam_periph.h:183).
178 u_int32_t sense_flags, union ccb *save_ccb);
179
180 static __inline void
181 cam_periph_lock(struct cam_periph *periph)
182 {
183 mtx_lock(periph->sim->mtx);
184 }
185
186 static __inline void
187 cam_periph_unlock(struct cam_periph *periph)
(kgdb)

Without ahci.ko loaded it boots, but the original problems remain,
here is the dmesg from that boot:

Copyright (c) 1992-2009 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 8.0-CURRENT #0: Mon Jul 6 21:22:05 CEST 2009
n...@triton.kn-bremen.de:/usr/obj/usr/home/nox/src8camata/src/sys/TRITON8
WARNING: WITNESS option enabled, expect reduced performance.
Preloaded elf kernel "/boot/kernel/kernel" at 0xffffffff81025000.
module_register: module probe already exists!
Module probe failed to register: 17
Timecounter "i8254" frequency 1193182 Hz quality 0
Calibrating TSC clock ... TSC clock: 2812820279 Hz
CPU: AMD Phenom(tm) II X4 920 Processor (2812.82-MHz K8-class CPU)
Origin = "AuthenticAMD" Id = 0x100f42 Stepping = 2
Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT>
Features2=0x802009<SSE3,MON,CX16,POPCNT>
AMD Features=0xee500800<SYSCALL,NX,MMX+,FFXSR,Page1GB,RDTSCP,LM,3DNow!+,3DNow!>
AMD Features2=0x37ff<LAHF,CMP,SVM,ExtAPIC,CR8,ABM,SSE4A,MAS,Prefetch,OSVW,IBS,SKINIT,WDT>
TSC: P-state invariant
L1 2MB data TLB: 48 entries, fully associative
L1 2MB instruction TLB: 16 entries, fully associative
L1 4KB data TLB: 48 entries, fully associative
L1 4KB instruction TLB: 32 entries, fully associative
L1 data cache: 64 kbytes, 64 bytes/line, 1 lines/tag, 2-way associative
L1 instruction cache: 64 kbytes, 64 bytes/line, 1 lines/tag, 2-way associative
L2 2MB data TLB: 128 entries, 2-way associative
L2 2MB instruction TLB: 0 entries, 2-way associative
L2 4KB data TLB: 512 entries, 4-way associative
L2 4KB instruction TLB: 512 entries, 4-way associative
L2 unified cache: 512 kbytes, 64 bytes/line, 1 lines/tag, 16-way associative
real memory = 9395240960 (8960 MB)
Physical memory chunk(s):
0x0000000000001000 - 0x000000000009bfff, 634880 bytes (155 pages)
0x000000000104f000 - 0x00000000cfddffff, 3470331904 bytes (847249 pages)
0x0000000100000000 - 0x0000000220a2ffff, 4842520576 bytes (1182256 pages)
avail memory = 8270852096 (7887 MB)
ACPI APIC Table: <GBT GBTUACPI>
INTR: Adding local APIC 1 as a target
INTR: Adding local APIC 2 as a target
INTR: Adding local APIC 3 as a target
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
FreeBSD/SMP: 1 package(s) x 4 core(s)
cpu0 (BSP): APIC ID: 0
cpu1 (AP): APIC ID: 1
cpu2 (AP): APIC ID: 2
cpu3 (AP): APIC ID: 3
APIC: CPU 0 has ACPI ID 0
APIC: CPU 1 has ACPI ID 1
APIC: CPU 2 has ACPI ID 2
APIC: CPU 3 has ACPI ID 3
ULE: setup cpu 0
ULE: setup cpu 1
ULE: setup cpu 2
ULE: setup cpu 3
ACPI: RSDP 0xf6fe0 00014 (v0 GBT )
ACPI: RSDT 0xcfde3000 0003C (v1 GBT GBTUACPI 42302E31 GBTU 01010101)
ACPI: FACP 0xcfde3040 00074 (v1 GBT GBTUACPI 42302E31 GBTU 01010101)
ACPI: DSDT 0xcfde30c0 05E2B (v1 GBT GBTUACPI 00001000 MSFT 03000000)
ACPI: FACS 0xcfde0000 00040
ACPI: SSDT 0xcfde8fc0 0088C (v1 PTLTD POWERNOW 00000001 LTP 00000001)
ACPI: HPET 0xcfde9880 00038 (v1 GBT GBTUACPI 42302E31 GBTU 00000098)
ACPI: MCFG 0xcfde98c0 0003C (v1 GBT GBTUACPI 42302E31 GBTU 01010101)
ACPI: TAMG 0xcfde9900 00302 (v1 GBT GBT B0 5455312E BG\^A\^A 53450101)
ACPI: APIC 0xcfde8f00 00084 (v1 GBT GBTUACPI 42302E31 GBTU 01010101)
MADT: Found IO APIC ID 2, Interrupt 0 at 0xfec00000
ioapic0: Changing APIC ID to 2
ioapic0: Routing external 8259A's -> intpin 0
MADT: Interrupt override: source 0, irq 2
ioapic0: Routing IRQ 0 -> intpin 2
MADT: Interrupt override: source 9, irq 9
ioapic0: intpin 9 trigger: level
ioapic0: intpin 9 polarity: low
lapic0: Routing NMI -> LINT1
lapic0: LINT1 trigger: edge
lapic0: LINT1 polarity: high
lapic1: Routing NMI -> LINT1
lapic1: LINT1 trigger: edge
lapic1: LINT1 polarity: high
lapic2: Routing NMI -> LINT1
lapic2: LINT1 trigger: edge
lapic2: LINT1 polarity: high
lapic3: Routing NMI -> LINT1
lapic3: LINT1 trigger: edge
lapic3: LINT1 polarity: high
ioapic0 <Version 2.1> irqs 0-23 on motherboard
cpu0 BSP:
ID: 0x00000000 VER: 0x80050010 LDR: 0x00000000 DFR: 0xffffffff
lint0: 0x00010700 lint1: 0x00000400 TPR: 0x00000000 SVR: 0x000001ff
timer: 0x000100ef therm: 0x00010000 err: 0x00010000 pcm: 0x00000400
wlan: <802.11 Link Layer>
random: <entropy source, Software, Yarrow>
nfslock: pseudo-device
kbd: new array size 4
kbd1 at kbdmux0
mem: <memory>
null: <null device, zero device>
io: <I/O>
hptrr: RocketRAID 17xx/2xxx SATA controller driver v1.2 (Jul 6 2009 21:21:34)
acpi0: <GBT GBTUACPI> on motherboard
PCIe: Memory Mapped configuration base @ 0xe0000000
ioapic0: routing intpin 9 (ISA IRQ 9) to lapic 0 vector 48
acpi0: [MPSAFE]
acpi0: [ITHREAD]
acpi0: Power Button (fixed)
acpi0: wakeup code va 0xffffff8000012000 pa 0x4000
acpi_bus_number: root bus has no _BBN, assuming 0
AcpiOsDerivePciId: \\_SB_.PCI0.SATA.SACS -> bus 0 dev 17 func 0
acpi_bus_number: root bus has no _BBN, assuming 0
AcpiOsDerivePciId: \\_SB_.PCI0.BAR1 -> bus 0 dev 0 func 0
acpi_bus_number: root bus has no _BBN, assuming 0
AcpiOsDerivePciId: \\_SB_.PCI0.SMB0.HETT -> bus 0 dev 20 func 0
acpi0: reservation of 0, a0000 (3) failed
acpi0: reservation of 100000, cfce0000 (3) failed
ACPI timer: 1/2 1/2 1/1 1/2 1/1 1/1 1/1 1/2 1/2 1/1 -> 10
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <32-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
pci_link0: Index IRQ Rtd Ref IRQs
Initial Probe 0 255 N 0 3 4 5 6 7 10 11
Validation 0 255 N 0 3 4 5 6 7 10 11
After Disable 0 255 N 0 3 4 5 6 7 10 11
pci_link1: Index IRQ Rtd Ref IRQs
Initial Probe 0 255 N 0 3 4 5 6 7 10 11
Validation 0 255 N 0 3 4 5 6 7 10 11
After Disable 0 255 N 0 3 4 5 6 7 10 11
pci_link2: Index IRQ Rtd Ref IRQs
Initial Probe 0 255 N 0 3 4 5 6 7 10 11
Validation 0 255 N 0 3 4 5 6 7 10 11
After Disable 0 255 N 0 3 4 5 6 7 10 11
pci_link3: Index IRQ Rtd Ref IRQs
Initial Probe 0 255 N 0 3 4 5 6 7 10 11
Validation 0 255 N 0 3 4 5 6 7 10 11
After Disable 0 255 N 0 3 4 5 6 7 10 11
pci_link4: Index IRQ Rtd Ref IRQs
Initial Probe 0 255 N 0 3 4 5 6 7 10 11
Validation 0 255 N 0 3 4 5 6 7 10 11
After Disable 0 255 N 0 3 4 5 6 7 10 11
pci_link5: Index IRQ Rtd Ref IRQs
Initial Probe 0 255 N 0 3 4 5 6 7 10 11
Validation 0 255 N 0 3 4 5 6 7 10 11
After Disable 0 255 N 0 3 4 5 6 7 10 11
pci_link6: Index IRQ Rtd Ref IRQs
Initial Probe 0 255 N 0 3 4 5 6 7 10 11
Validation 0 255 N 0 3 4 5 6 7 10 11
After Disable 0 255 N 0 3 4 5 6 7 10 11
pci_link7: Index IRQ Rtd Ref IRQs
Initial Probe 0 255 N 0 3 4 5 6 7 10 11
Validation 0 255 N 0 3 4 5 6 7 10 11
After Disable 0 255 N 0 3 4 5 6 7 10 11
acpi_hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0
acpi_hpet0: vend: 0x4353 rev: 0x1 num: 3 hz: 14318180 opts: legacy_route
Timecounter "HPET" frequency 14318180 Hz quality 900
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pci0: domain=0, physical bus=0
found-> vendor=0x1002, dev=0x5957, revid=0x00
domain=0, bus=0, slot=0, func=0
class=06-00-00, hdrtype=0x00, mfdev=0
cmdreg=0x0006, statreg=0x2230, cachelnsz=0 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
map[1c]: type Memory, range 64, base 0xe0000000, size 29, enabled
found-> vendor=0x1002, dev=0x5978, revid=0x00
domain=0, bus=0, slot=2, func=0
class=06-04-00, hdrtype=0x01, mfdev=0
cmdreg=0x0007, statreg=0x0010, cachelnsz=1 (dwords)
lattimer=0x00 (0 ns), mingnt=0x08 (2000 ns), maxlat=0x00 (0 ns)
intpin=a, irq=5


powerspec 3 supports D0 D3 current D0

MSI supports 1 message
pcib0: matched entry for 0.2.INTA
pcib0: slot 2 INTA hardwired to IRQ 18
found-> vendor=0x1002, dev=0x597d, revid=0x00
domain=0, bus=0, slot=7, func=0
class=06-04-00, hdrtype=0x01, mfdev=0
cmdreg=0x0007, statreg=0x0010, cachelnsz=1 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=10


powerspec 3 supports D0 D3 current D0

MSI supports 1 message
pcib0: matched entry for 0.7.INTA
pcib0: slot 7 INTA hardwired to IRQ 19
found-> vendor=0x1002, dev=0x597f, revid=0x00
domain=0, bus=0, slot=10, func=0
class=06-04-00, hdrtype=0x01, mfdev=0
cmdreg=0x0007, statreg=0x0010, cachelnsz=1 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=5


powerspec 3 supports D0 D3 current D0

MSI supports 1 message
pcib0: matched entry for 0.10.INTA
pcib0: slot 10 INTA hardwired to IRQ 18
found-> vendor=0x1002, dev=0x4391, revid=0x00
domain=0, bus=0, slot=17, func=0
class=01-06-01, hdrtype=0x00, mfdev=0
cmdreg=0x0007, statreg=0x0230, cachelnsz=0 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=11
powerspec 2 supports D0 D3 current D0
map[10]: type I/O Port, range 32, base 0xff00, size 3, enabled
map[14]: type I/O Port, range 32, base 0xfe00, size 2, enabled
map[18]: type I/O Port, range 32, base 0xfd00, size 3, enabled
map[1c]: type I/O Port, range 32, base 0xfc00, size 2, enabled
map[20]: type I/O Port, range 32, base 0xfb00, size 4, enabled
map[24]: type Memory, range 32, base 0xfe02f000, size 10, enabled
pcib0: matched entry for 0.17.INTA
pcib0: slot 17 INTA hardwired to IRQ 22
found-> vendor=0x1002, dev=0x4397, revid=0x00
domain=0, bus=0, slot=18, func=0
class=0c-03-10, hdrtype=0x00, mfdev=1
cmdreg=0x0002, statreg=0x02a0, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=3
map[10]: type Memory, range 32, base 0xfe02e000, size 12, enabled
pcib0: matched entry for 0.18.INTA
pcib0: slot 18 INTA hardwired to IRQ 16
found-> vendor=0x1002, dev=0x4398, revid=0x00
domain=0, bus=0, slot=18, func=1
class=0c-03-10, hdrtype=0x00, mfdev=0
cmdreg=0x0007, statreg=0x02a0, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=3
map[10]: type Memory, range 32, base 0xfe02d000, size 12, enabled
pcib0: matched entry for 0.18.INTA
pcib0: slot 18 INTA hardwired to IRQ 16
found-> vendor=0x1002, dev=0x4396, revid=0x00
domain=0, bus=0, slot=18, func=2
class=0c-03-20, hdrtype=0x00, mfdev=0
cmdreg=0x0002, statreg=0x02b0, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=b, irq=11
powerspec 2 supports D0 D1 D2 D3 current D0
map[10]: type Memory, range 32, base 0xfe02c000, size 8, enabled
pcib0: matched entry for 0.18.INTB
pcib0: slot 18 INTB hardwired to IRQ 17
found-> vendor=0x1002, dev=0x4397, revid=0x00
domain=0, bus=0, slot=19, func=0
class=0c-03-10, hdrtype=0x00, mfdev=1
cmdreg=0x0002, statreg=0x02a0, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=5
map[10]: type Memory, range 32, base 0xfe02b000, size 12, enabled
pcib0: matched entry for 0.19.INTA
pcib0: slot 19 INTA hardwired to IRQ 18
found-> vendor=0x1002, dev=0x4398, revid=0x00
domain=0, bus=0, slot=19, func=1
class=0c-03-10, hdrtype=0x00, mfdev=0
cmdreg=0x0007, statreg=0x02a0, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=5
map[10]: type Memory, range 32, base 0xfe02a000, size 12, enabled
pcib0: matched entry for 0.19.INTA
pcib0: slot 19 INTA hardwired to IRQ 18
found-> vendor=0x1002, dev=0x4396, revid=0x00
domain=0, bus=0, slot=19, func=2
class=0c-03-20, hdrtype=0x00, mfdev=0
cmdreg=0x0002, statreg=0x02b0, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=b, irq=10
powerspec 2 supports D0 D1 D2 D3 current D0
map[10]: type Memory, range 32, base 0xfe029000, size 8, enabled
pcib0: matched entry for 0.19.INTB
pcib0: slot 19 INTB hardwired to IRQ 19
found-> vendor=0x1002, dev=0x4385, revid=0x3a
domain=0, bus=0, slot=20, func=0
class=0c-05-00, hdrtype=0x00, mfdev=1
cmdreg=0x0403, statreg=0x0230, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found-> vendor=0x1002, dev=0x439c, revid=0x00
domain=0, bus=0, slot=20, func=1
class=01-01-8a, hdrtype=0x00, mfdev=0
cmdreg=0x0005, statreg=0x0230, cachelnsz=0 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=255
MSI supports 1 message
map[20]: type I/O Port, range 32, base 0xfa00, size 4, enabled
found-> vendor=0x1002, dev=0x4383, revid=0x00
domain=0, bus=0, slot=20, func=2
class=04-03-00, hdrtype=0x00, mfdev=0
cmdreg=0x0006, statreg=0x0410, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=3
powerspec 2 supports D0 D3 current D0
map[10]: type Memory, range 64, base 0xfe024000, size 14, enabled
pcib0: matched entry for 0.20.INTA
pcib0: slot 20 INTA hardwired to IRQ 16
found-> vendor=0x1002, dev=0x439d, revid=0x00
domain=0, bus=0, slot=20, func=3
class=06-01-00, hdrtype=0x00, mfdev=1
cmdreg=0x000f, statreg=0x0220, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found-> vendor=0x1002, dev=0x4384, revid=0x00
domain=0, bus=0, slot=20, func=4
class=06-04-01, hdrtype=0x01, mfdev=1
cmdreg=0x0027, statreg=0x02a0, cachelnsz=0 (dwords)
lattimer=0x40 (1920 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found-> vendor=0x1002, dev=0x4399, revid=0x00
domain=0, bus=0, slot=20, func=5
class=0c-03-10, hdrtype=0x00, mfdev=0
cmdreg=0x0002, statreg=0x02a0, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=c, irq=5
map[10]: type Memory, range 32, base 0xfe028000, size 12, enabled
pcib0: matched entry for 0.20.INTC
pcib0: slot 20 INTC hardwired to IRQ 18
found-> vendor=0x1022, dev=0x1200, revid=0x00
domain=0, bus=0, slot=24, func=0
class=06-00-00, hdrtype=0x00, mfdev=1
cmdreg=0x0000, statreg=0x0010, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found-> vendor=0x1022, dev=0x1201, revid=0x00
domain=0, bus=0, slot=24, func=1
class=06-00-00, hdrtype=0x00, mfdev=1
cmdreg=0x0000, statreg=0x0000, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found-> vendor=0x1022, dev=0x1202, revid=0x00
domain=0, bus=0, slot=24, func=2
class=06-00-00, hdrtype=0x00, mfdev=1
cmdreg=0x0000, statreg=0x0000, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found-> vendor=0x1022, dev=0x1203, revid=0x00
domain=0, bus=0, slot=24, func=3
class=06-00-00, hdrtype=0x00, mfdev=1
cmdreg=0x0000, statreg=0x0010, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found-> vendor=0x1022, dev=0x1204, revid=0x00
domain=0, bus=0, slot=24, func=4
class=06-00-00, hdrtype=0x00, mfdev=1
cmdreg=0x0000, statreg=0x0000, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
pcib1: <ACPI PCI-PCI bridge> irq 18 at device 2.0 on pci0
pcib1: domain 0
pcib1: secondary bus 1
pcib1: subordinate bus 1
pcib1: I/O decode 0xe000-0xefff
pcib1: memory decode 0xfde00000-0xfdefffff
pcib1: prefetched decode 0xd0000000-0xdfffffff
pci1: <ACPI PCI bus> on pcib1
pci1: domain=0, physical bus=1
found-> vendor=0x1002, dev=0x9498, revid=0x00
domain=0, bus=1, slot=0, func=0
class=03-00-00, hdrtype=0x00, mfdev=1
cmdreg=0x0007, statreg=0x0010, cachelnsz=1 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=5
powerspec 3 supports D0 D1 D2 D3 current D0
MSI supports 1 message, 64 bit
map[10]: type Prefetchable Memory, range 64, base 0xd0000000, size 28, enabled
pcib1: requested memory range 0xd0000000-0xdfffffff: good
map[18]: type Memory, range 64, base 0xfdee0000, size 16, enabled
pcib1: requested memory range 0xfdee0000-0xfdeeffff: good
map[20]: type I/O Port, range 32, base 0xee00, size 8, enabled
pcib1: requested I/O range 0xee00-0xeeff: in range
pcib1: matched entry for 1.0.INTA
pcib1: slot 0 INTA hardwired to IRQ 18
found-> vendor=0x1002, dev=0xaa38, revid=0x00
domain=0, bus=1, slot=0, func=1
class=04-03-00, hdrtype=0x00, mfdev=1
cmdreg=0x0006, statreg=0x0010, cachelnsz=1 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=b, irq=5
powerspec 3 supports D0 D1 D2 D3 current D0
MSI supports 1 message, 64 bit
map[10]: type Memory, range 64, base 0xfdefc000, size 14, enabled
pcib1: requested memory range 0xfdefc000-0xfdefffff: good
pcib1: matched entry for 1.0.INTB
pcib1: slot 0 INTB hardwired to IRQ 19
vgapci0: <VGA-compatible display> port 0xee00-0xeeff mem 0xd0000000-0xdfffffff,0xfdee0000-0xfdeeffff irq 18 at device 0.0 on pci1
pci1: <multimedia, HDA> at device 0.1 (no driver attached)
pcib2: <ACPI PCI-PCI bridge> irq 19 at device 7.0 on pci0
pcib2: domain 0
pcib2: secondary bus 2
pcib2: subordinate bus 2
pcib2: I/O decode 0xd000-0xdfff
pcib2: memory decode 0xfdd00000-0xfddfffff
pcib2: prefetched decode 0xfdc00000-0xfdcfffff
pci2: <ACPI PCI bus> on pcib2
pci2: domain=0, physical bus=2
found-> vendor=0x8086, dev=0x10b9, revid=0x06
domain=0, bus=2, slot=0, func=0
class=02-00-00, hdrtype=0x00, mfdev=0
cmdreg=0x0007, statreg=0x0010, cachelnsz=1 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=10
powerspec 2 supports D0 D3 current D0
MSI supports 1 message, 64 bit
map[10]: type Memory, range 32, base 0xfdde0000, size 17, enabled
pcib2: requested memory range 0xfdde0000-0xfddfffff: good
map[14]: type Memory, range 32, base 0xfddc0000, size 17, enabled
pcib2: requested memory range 0xfddc0000-0xfdddffff: good
map[18]: type I/O Port, range 32, base 0xdf00, size 5, enabled
pcib2: requested I/O range 0xdf00-0xdf1f: in range
pcib2: matched entry for 2.0.INTA
pcib2: slot 0 INTA hardwired to IRQ 19
em0: <Intel(R) PRO/1000 Network Connection 6.9.14> port 0xdf00-0xdf1f mem 0xfdde0000-0xfddfffff,0xfddc0000-0xfdddffff irq 19 at device 0.0 on pci2
em0: Reserved 0x20000 bytes for rid 0x10 type 3 at 0xfdde0000
em0: attempting to allocate 1 MSI vectors (1 supported)
msi: routing MSI IRQ 256 to local APIC 0 vector 49
em0: using IRQ 256 for MSI
em0: Using MSI interrupt
em0: [FILTER]
em0: bpf attached
em0: Ethernet address: 00:1b:21:34:ef:46
pcib3: <ACPI PCI-PCI bridge> irq 18 at device 10.0 on pci0
pcib3: domain 0
pcib3: secondary bus 3
pcib3: subordinate bus 3
pcib3: I/O decode 0xc000-0xcfff
pcib3: memory decode 0xfda00000-0xfdafffff
pcib3: prefetched decode 0xfdf00000-0xfdffffff
pci3: <ACPI PCI bus> on pcib3
pci3: domain=0, physical bus=3
found-> vendor=0x10ec, dev=0x8168, revid=0x02
domain=0, bus=3, slot=0, func=0
class=02-00-00, hdrtype=0x00, mfdev=0
cmdreg=0x0007, statreg=0x0010, cachelnsz=1 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=5
powerspec 3 supports D0 D1 D2 D3 current D0
MSI supports 2 messages, 64 bit
MSI-X supports 2 messages in map 0x20
map[10]: type I/O Port, range 32, base 0xce00, size 8, enabled
pcib3: requested I/O range 0xce00-0xceff: in range
map[18]: type Prefetchable Memory, range 64, base 0xfdfff000, size 12, enabled
pcib3: requested memory range 0xfdfff000-0xfdffffff: good
map[20]: type Prefetchable Memory, range 64, base 0xfdfe0000, size 16, enabled
pcib3: requested memory range 0xfdfe0000-0xfdfeffff: good
pcib3: matched entry for 3.0.INTA
pcib3: slot 0 INTA hardwired to IRQ 18
re0: <RealTek 8168/8168B/8168C/8168CP/8168D/8111B/8111C/8111CP PCIe Gigabit Ethernet> port 0xce00-0xceff mem 0xfdfff000-0xfdffffff,0xfdfe0000-0xfdfeffff irq 18 at device 0.0 on pci3
re0: Reserved 0x1000 bytes for rid 0x18 type 3 at 0xfdfff000
re0: MSI count : 2
re0: attempting to allocate 1 MSI vectors (2 supported)
msi: routing MSI IRQ 257 to local APIC 0 vector 50
re0: using IRQ 257 for MSI
re0: Using 1 MSI messages
re0: Chip rev. 0x3c000000
re0: MAC rev. 0x00400000
miibus0: <MII bus> on re0
rgephy0: <RTL8169S/8110S/8211B media interface> PHY 1 on miibus0
rgephy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
re0: bpf attached
re0: Ethernet address: 00:1f:d0:d7:4c:1b
re0: [MPSAFE]
re0: [FILTER]
atapci0: <ATI IXP700/800 SATA300 controller> port 0xff00-0xff07,0xfe00-0xfe03,0xfd00-0xfd07,0xfc00-0xfc03,0xfb00-0xfb0f mem 0xfe02f000-0xfe02f3ff irq 22 at device 17.0 on pci0
atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0xfb00
atapci0: Reserved 0x400 bytes for rid 0x24 type 3 at 0xfe02f000
ioapic0: routing intpin 22 (PCI IRQ 22) to lapic 0 vector 51
atapci0: [MPSAFE]
atapci0: [ITHREAD]
atapci0: AHCI v1.10 controller with 6 3Gbps ports, PM supported
atapci0: Caps: 64bit NCQ SNTF MPS ALP AL CLO 3Gbps PM PMD SSC PSC 32cmd CCC 6ports
ata2: <ATA channel 0> on atapci0
ata2: AHCI reset...
ata2: hardware reset ...
ata2: SATA connect time=0ms status=00000123
ata2: ready wait time=23ms
ata2: software reset port 15...
ata2: ahci_issue_cmd timeout: 3000 of 3000ms, status=00000001
ata2: port is not ready (timeout 0ms) tfd = 000001d0
ata2: software reset clear timeout
ata2: software reset port 0...
ata2: ready wait time=0ms
ata2: SIGNATURE: 00000101
ata2: AHCI reset done: devices=00000001
ata2: [MPSAFE]
ata2: [ITHREAD]
ata3: <ATA channel 1> on atapci0
ata3: AHCI reset...
ata3: hardware reset ...
ata3: SATA connect time=10ms status=00000113
ata3: ready wait time=183ms
ata3: software reset port 15...
ata3: ahci_issue_cmd timeout: 3000 of 3000ms, status=00000001
ata3: port is not ready (timeout 0ms) tfd = 00000180
ata3: software reset clear timeout
ata3: software reset port 0...
ata3: ready wait time=0ms
ata3: SIGNATURE: eb140101
ata3: AHCI reset done: devices=00010000
ata3: [MPSAFE]
ata3: [ITHREAD]
ata4: <ATA channel 2> on atapci0
ata4: AHCI reset...
ata4: hardware reset ...
ata4: SATA connect time=0ms status=00000123
ata4: ready wait time=16ms
ata4: software reset port 15...
ata4: ahci_issue_cmd timeout: 3000 of 3000ms, status=00000001
ata4: port is not ready (timeout 0ms) tfd = 000001d0
ata4: software reset clear timeout
ata4: software reset port 0...
ata4: ready wait time=0ms
ata4: SIGNATURE: 00000101
ata4: AHCI reset done: devices=00000001
ata4: [MPSAFE]
ata4: [ITHREAD]
ata5: <ATA channel 3> on atapci0
ata5: AHCI reset...
ata5: hardware reset ...
ata5: SATA connect timeout status=00000000
ata5: AHCI reset done: phy reset found no device
ata5: [MPSAFE]
ata5: [ITHREAD]
ata6: <ATA channel 4> on atapci0
ata6: AHCI reset...
ata6: hardware reset ...
ata6: SATA connect timeout status=00000000
ata6: AHCI reset done: phy reset found no device
ata6: [MPSAFE]
ata6: [ITHREAD]
ata7: <ATA channel 5> on atapci0
ata7: AHCI reset...
ata7: hardware reset ...
ata7: SATA connect timeout status=00000000
ata7: AHCI reset done: phy reset found no device
ata7: [MPSAFE]
ata7: [ITHREAD]
ohci0: <OHCI (generic) USB controller> mem 0xfe02e000-0xfe02efff irq 16 at device 18.0 on pci0
ohci0: Reserved 0x1000 bytes for rid 0x10 type 3 at 0xfe02e000
ioapic0: routing intpin 16 (PCI IRQ 16) to lapic 0 vector 52
ohci0: [MPSAFE]
ohci0: [ITHREAD]
usbus0: <OHCI (generic) USB controller> on ohci0
ohci1: <OHCI (generic) USB controller> mem 0xfe02d000-0xfe02dfff irq 16 at device 18.1 on pci0
ohci1: Reserved 0x1000 bytes for rid 0x10 type 3 at 0xfe02d000
ohci1: [MPSAFE]
ohci1: [ITHREAD]
usbus1: <OHCI (generic) USB controller> on ohci1
ehci0: <EHCI (generic) USB 2.0 controller> mem 0xfe02c000-0xfe02c0ff irq 17 at device 18.2 on pci0
ehci0: Reserved 0x100 bytes for rid 0x10 type 3 at 0xfe02c000
ioapic0: routing intpin 17 (PCI IRQ 17) to lapic 0 vector 53
ehci0: [MPSAFE]
ehci0: [ITHREAD]
usbus2: EHCI version 1.0
usbus2: <EHCI (generic) USB 2.0 controller> on ehci0
ohci2: <OHCI (generic) USB controller> mem 0xfe02b000-0xfe02bfff irq 18 at device 19.0 on pci0
ohci2: Reserved 0x1000 bytes for rid 0x10 type 3 at 0xfe02b000
ioapic0: routing intpin 18 (PCI IRQ 18) to lapic 0 vector 54
ohci2: [MPSAFE]
ohci2: [ITHREAD]
usbus3: <OHCI (generic) USB controller> on ohci2
ohci3: <OHCI (generic) USB controller> mem 0xfe02a000-0xfe02afff irq 18 at device 19.1 on pci0
ohci3: Reserved 0x1000 bytes for rid 0x10 type 3 at 0xfe02a000
ohci3: [MPSAFE]
ohci3: [ITHREAD]
usbus4: <OHCI (generic) USB controller> on ohci3
ehci1: <EHCI (generic) USB 2.0 controller> mem 0xfe029000-0xfe0290ff irq 19 at device 19.2 on pci0
ehci1: Reserved 0x100 bytes for rid 0x10 type 3 at 0xfe029000
ioapic0: routing intpin 19 (PCI IRQ 19) to lapic 0 vector 55
ehci1: [MPSAFE]
ehci1: [ITHREAD]
usbus5: EHCI version 1.0
usbus5: <EHCI (generic) USB 2.0 controller> on ehci1
pci0: <serial bus, SMBus> at device 20.0 (no driver attached)
atapci1: <ATI IXP700/800 UDMA133 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfa00-0xfa0f at device 20.1 on pci0
atapci1: Reserved 0x10 bytes for rid 0x20 type 4 at 0xfa00
ata0: <ATA channel 0> on atapci1
atapci1: Reserved 0x8 bytes for rid 0x10 type 4 at 0x1f0
atapci1: Reserved 0x1 bytes for rid 0x14 type 4 at 0x3f6
ata0: reset tp1 mask=03 ostat0=7f ostat1=7f
ata0: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata0: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata0: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata0: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata0: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata0: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata0: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata0: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata0: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata0: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata0: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata0: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata0: stat1=0x7f err=0x7f lsb=0x7f msb=0x7f
ata0: reset tp2 stat0=ff stat1=ff devices=0x0
ioapic0: routing intpin 14 (ISA IRQ 14) to lapic 0 vector 56
ata0: [MPSAFE]
ata0: [ITHREAD]
ata1: <ATA channel 1> on atapci1
atapci1: Reserved 0x8 bytes for rid 0x18 type 4 at 0x170
atapci1: Reserved 0x1 bytes for rid 0x1c type 4 at 0x376
ata1: reset tp1 mask=00 ostat0=ff ostat1=ff
ioapic0: routing intpin 15 (ISA IRQ 15) to lapic 0 vector 57
ata1: [MPSAFE]
ata1: [ITHREAD]
pci0: <multimedia, HDA> at device 20.2 (no driver attached)
isab0: <PCI-ISA bridge> at device 20.3 on pci0
isa0: <ISA bus> on isab0
pcib4: <ACPI PCI-PCI bridge> at device 20.4 on pci0
pcib4: domain 0
pcib4: secondary bus 4
pcib4: subordinate bus 4
pcib4: I/O decode 0xb000-0xbfff
pcib4: memory decode 0xf8000000-0xfcffffff
pcib4: prefetched decode 0xfdb00000-0xfdbfffff
pcib4: Subtractively decoded bridge.
pci4: <ACPI PCI bus> on pcib4
pci4: domain=0, physical bus=4
found-> vendor=0x14f1, dev=0x8800, revid=0x05
domain=0, bus=4, slot=6, func=0
class=04-00-00, hdrtype=0x00, mfdev=1
cmdreg=0x0006, statreg=0x0290, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x14 (5000 ns), maxlat=0x37 (13750 ns)
intpin=a, irq=7
powerspec 2 supports D0 D3 current D0
map[10]: type Memory, range 32, base 0xf9000000, size 24, enabled
pcib4: requested memory range 0xf9000000-0xf9ffffff: good
pcib4: matched entry for 4.6.INTA
pcib4: slot 6 INTA hardwired to IRQ 20
found-> vendor=0x14f1, dev=0x8811, revid=0x05
domain=0, bus=4, slot=6, func=1
class=04-80-00, hdrtype=0x00, mfdev=1
cmdreg=0x0006, statreg=0x0290, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x04 (1000 ns), maxlat=0xff (63750 ns)
intpin=a, irq=7
powerspec 2 supports D0 D3 current D0
map[10]: type Memory, range 32, base 0xf8000000, size 24, enabled
pcib4: requested memory range 0xf8000000-0xf8ffffff: good
pcib4: matched entry for 4.6.INTA
pcib4: slot 6 INTA hardwired to IRQ 20
found-> vendor=0x14f1, dev=0x8802, revid=0x05
domain=0, bus=4, slot=6, func=2
class=04-80-00, hdrtype=0x00, mfdev=1
cmdreg=0x0006, statreg=0x0290, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x06 (1500 ns), maxlat=0x58 (22000 ns)
intpin=a, irq=7
powerspec 2 supports D0 D3 current D0
map[10]: type Memory, range 32, base 0xfb000000, size 24, enabled
pcib4: requested memory range 0xfb000000-0xfbffffff: good
pcib4: matched entry for 4.6.INTA
pcib4: slot 6 INTA hardwired to IRQ 20
found-> vendor=0x14f1, dev=0x8804, revid=0x05
domain=0, bus=4, slot=6, func=4
class=04-80-00, hdrtype=0x00, mfdev=1
cmdreg=0x0006, statreg=0x0290, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x06 (1500 ns), maxlat=0xff (63750 ns)
intpin=a, irq=7
powerspec 2 supports D0 D3 current D0
map[10]: type Memory, range 32, base 0xfa000000, size 24, enabled
pcib4: requested memory range 0xfa000000-0xfaffffff: good
pcib4: matched entry for 4.6.INTA
pcib4: slot 6 INTA hardwired to IRQ 20
found-> vendor=0x104c, dev=0x8024, revid=0x00
domain=0, bus=4, slot=14, func=0
class=0c-00-10, hdrtype=0x00, mfdev=0
cmdreg=0x0006, statreg=0x0210, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x02 (500 ns), maxlat=0x04 (1000 ns)
intpin=a, irq=11
powerspec 2 supports D0 D1 D2 D3 current D0
map[10]: type Memory, range 32, base 0xfcfff000, size 11, enabled
pcib4: requested memory range 0xfcfff000-0xfcfff7ff: good
map[14]: type Memory, range 32, base 0xfcff8000, size 14, enabled
pcib4: requested memory range 0xfcff8000-0xfcffbfff: good
pcib4: matched entry for 4.14.INTA
pcib4: slot 14 INTA hardwired to IRQ 22
pci4: <multimedia, video> at device 6.0 (no driver attached)
pci4: <multimedia> at device 6.1 (no driver attached)
pci4: <multimedia> at device 6.2 (no driver attached)
pci4: <multimedia> at device 6.4 (no driver attached)
fwohci0: <Texas Instruments TSB43AB23> mem 0xfcfff000-0xfcfff7ff,0xfcff8000-0xfcffbfff irq 22 at device 14.0 on pci4
fwohci0: Reserved 0x800 bytes for rid 0x10 type 3 at 0xfcfff000
fwohci0: [MPSAFE]
fwohci0: [ITHREAD]
fwohci0: OHCI version 1.10 (ROM=0)
fwohci0: No. of Isochronous channels is 4.
fwohci0: EUI64 00:ef:de:f8:00:00:1f:d0
fwohci0: Phy 1394a available S400, 3 ports.
fwohci0: Link S400, max_rec 2048 bytes.
firewire0: <IEEE1394(FireWire) bus> on fwohci0
dcons_crom0: <dcons configuration ROM> on firewire0
dcons_crom0: bus_addr 0xcfdd8000
fwe0: <Ethernet over FireWire> on firewire0
if_fwe0: Fake Ethernet address: 02:ef:de:00:1f:d0
fwe0: bpf attached
fwe0: Ethernet address: 02:ef:de:00:1f:d0
fwip0: <IP over FireWire> on firewire0
fwip0: bpf attached
fwip0: Firewire address: 00:ef:de:f8:00:00:1f:d0 @ 0xfffe00000000, S400, maxrec 2048
sbp0: <SBP-2/SCSI over FireWire> on firewire0
fwohci0: Initiate bus reset
fwohci0: fwohci_intr_core: BUS reset
fwohci0: fwohci_intr_core: node_id=0x00000000, SelfID Count=1, CYCLEMASTER mode
ohci4: <OHCI (generic) USB controller> mem 0xfe028000-0xfe028fff irq 18 at device 20.5 on pci0
ohci4: Reserved 0x1000 bytes for rid 0x10 type 3 at 0xfe028000
ohci4: [MPSAFE]
ohci4: [ITHREAD]
usbus6: <OHCI (generic) USB controller> on ohci4
fdc0: <floppy drive controller> port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on acpi0
fdc0: ic_type 90 part_id 80
ioapic0: routing intpin 6 (ISA IRQ 6) to lapic 0 vector 58
fdc0: [FILTER]
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
ioapic0: routing intpin 4 (ISA IRQ 4) to lapic 0 vector 59
uart0: [FILTER]
uart0: fast interrupt
psmcpnp0: <PS/2 mouse port> irq 12 on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
atkbd: the current kbd controller command byte 0047
atkbd: keyboard ID 0x41ab (2)
kbd0 at atkbd0
kbd0: atkbd0, AT 101/102 (2), config:0x0, flags:0x3d0000
ioapic0: routing intpin 1 (ISA IRQ 1) to lapic 0 vector 60
atkbd0: [GIANT-LOCKED]
atkbd0: [ITHREAD]
psm0: current command byte:0047
psm0: <PS/2 Mouse> irq 12 on atkbdc0
ioapic0: routing intpin 12 (ISA IRQ 12) to lapic 0 vector 61
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model IntelliMouse Explorer, device ID 4-00, 5 buttons
psm0: config:00000000, flags:00000008, packet size:4
psm0: syncmask:08, syncbits:00
atrtc0: <AT realtime clock> port 0x70-0x73 on acpi0
atrtc0: registered as a time-of-day clock (resolution 1000000us)
cpu0: <ACPI CPU> on acpi0
cpu0: switching to generic Cx mode
hwpstate0: <Cool`n'Quiet 2.0> on cpu0
cpu1: <ACPI CPU> on acpi0
cpu2: <ACPI CPU> on acpi0
cpu3: <ACPI CPU> on acpi0
ex_isa_identify()
ahc_isa_probe 0: ioport 0xc00 alloc failed
isa_probe_children: disabling PnP devices
atkbdc: atkbdc0 already exists; skipping it
fdc: fdc0 already exists; skipping it
sc: sc0 already exists; skipping it
uart: uart0 already exists; skipping it
vga: vga0 already exists; skipping it
isa_probe_children: probing non-PnP devices
orm0: <ISA Option ROM> at iomem 0xc0000-0xcefff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sc0: fb0, kbd1, terminal emulator: scteken (teken terminal)
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
ppc0: cannot reserve I/O port range
ppc0: <Parallel port> failed to probe at irq 7 on isa0
uart1: <ns8250> failed to probe at port 0x2f8-0x2ff irq 3 on isa0
uart2: not probed (disabled)
uart3: not probed (disabled)
isa_probe_children: probing PnP devices
Device configuration finished.
Reducing kern.maxvnodes 513579 -> 100000
procfs registered
lapic: Divisor 2, Frequency 100457873 hz
Timecounter "TSC" frequency 2812820279 Hz quality -100
Timecounters tick every 1.000 msec
pfsync0: bpf attached
lo0: bpf attached
pflog0: bpf attached
ata5: CONNECT requested
firewire0: 1 nodes, maxhop <= 0 cable IRM irm(0) (me)
firewire0: bus manager 0
hptrr: no controller detected.
ata0: Identifying devices: 00000000
ata0: New devices: 00000000
ata1: Identifying devices: 00000000
ata1: New devices: 00000000
ata2: Identifying devices: 00000001
ata2: New devices: 00000001
usbus0: 12Mbps Full Speed USB v1.0
usbus1: 12Mbps Full Speed USB v1.0
usbus2: 480Mbps High Speed USB v2.0
usbus3: 12Mbps Full Speed USB v1.0
usbus4: 12Mbps Full Speed USB v1.0
usbus5: 480Mbps High Speed USB v2.0
usbus6: 12Mbps Full Speed USB v1.0
ata5: reiniting channel ..
ata5: AHCI reset...
ata5: hardware reset ...
ugen0.1: <ATI> at usbus0
uhub0: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
ugen1.1: <ATI> at usbus1
uhub1: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1
ugen2.1: <ATI> at usbus2
uhub2: <ATI EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus2
ugen3.1: <ATI> at usbus3
uhub3: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus3
ugen4.1: <ATI> at usbus4
uhub4: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus4
ugen5.1: <ATI> at usbus5
uhub5: <ATI EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus5
ugen6.1: <ATI> at usbus6
uhub6: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus6
uhub6: 2 ports with 2 removable, self powered
uhub0: 3 ports with 3 removable, self powered
uhub1: 3 ports with 3 removable, self powered
uhub3: 3 ports with 3 removable, self powered
uhub4: 3 ports with 3 removable, self powered
ata5: SATA connect timeout status=00000001
ata5: AHCI reset done: phy reset found no device
ataata5: DISCONNECT requested
5: reinit done ..
ata5: reiniting channel ..
ata5: AHCI reset...
ata5: hardware reset ...
ata5: SATA connect timeout status=00000000
ata5: AHCI reset done: phy reset found no device
ata5: reinit done ..
ata2-master: pio=PIO4 wdma=WDMA2 udma=UDMA133 cable=40 wire
ad4: 953868MB <Hitachi HDT721010SLA360 ST6OA31B> at ata2-master SATA300
ad4: 1953523055 sectors [1938018C/16H/63S] 16 sectors/interrupt 1 depth queue
GEOM: new disk ad4
ad4: Silicon Image check3 failed
ad4: Adaptec check1 failed
ad4: LSI (v3) check1 failed
GEOM: ad4s2: geometry does not match label (255h,63s != 16h,63s).
ad4: LSI (v2) check1 failed
ad4: FreeBSD check1 failed
ata3: Identifying devices: 00010000
ata3: New devices: 00010000
ata3-master: pio=PIO4 wdma=WDMA2 udma=UDMA66 cable=40 wire
ata3: device_reset timeout=120us
acd0: <PIONEER DVD-RW DVR-216D/1.09> DVDR drive at ata3 as master
acd0: read 6890KB/s (6890KB/s) write 5511KB/s (6890KB/s), 2000KB buffer, SATA150
acd0: Reads: CDR, CDRW, CDDA stream, DVDROM, DVDR, DVDRAM, packet
acd0: Writes: CDR, CDRW, DVDR, test write, burnproof
acd0: Audio: play, 256 volume levels
acd0: Mechanism: ejectable tray, unlocked
acd0: Medium: no/blank disc
ata4: Identifying devices: 00000001
ata4: New devices: 00000001
uhub2: 6 ports with 6 removable, self powered
uhub5: 6 ports with 6 removable, self powered
ata4-master: pio=PIO4 wdma=WDMA2 udma=UDMA133 cable=40 wire
ad8: 953869MB <Hitachi HDT721010SLA360 ST6OA31B> at ata4-master SATA300
ad8: 1953525168 sectors [1938021C/16H/63S] 16 sectors/interrupt 1 depth queue
ad8: Silicon Image check3 failed
ad8: Adaptec check1 failed
ad8: LSI (v3) check1 failed
ad8: LSI (v2) check1 failed
ad8: FreeBSD check1 failed
ata5: Identifying devices: 00000000
ata5: New devices: 00000000
ata6: Identifying devices: 00000000
ata6: New devices: 00000000
ata7: Identifying devices: 00000000
ata7: New devices: 00000000
GEOM: new disk ad8
GEOM: ad8: partition 1 does not start on a track boundary.
GEOM: ad8: partition 1 does not end on a track boundary.
GEOM: ad8s3: geometry does not match label (255h,63s != 16h,63s).
ugen1.2: <HP> at usbus1
(probe0:sbp0:0:0:0): error 22
(probe0:sbp0:0:0:0): Unretryable Error
(probe1:sbp0:0:1:0): error 22
(probe1:sbp0:0:1:0): Unretryable Error
(probe2:sbp0:0:2:0): error 22
(probe2:sbp0:0:2:0): Unretryable Error
(probe3:sbp0:0:3:0): error 22
(probe3:sbp0:0:3:0): Unretryable Error
(probe4:sbp0:0:4:0): error 22
(probe4:sbp0:0:4:0): Unretryable Error
(probe5:sbp0:0:5:0): error 22
(probe5:sbp0:0:5:0): Unretryable Error
(probe6:sbp0:0:6:0): error 22
(probe6:sbp0:0:6:0): Unretryable Error
ATA PseudoRAID loaded
SMP: AP CPU #3 Launched!
cpu3 AP:
ID: 0x03000000 VER: 0x80050010 LDR: 0x00000000 DFR: 0xffffffff
lint0: 0x00010700 lint1: 0x00000400 TPR: 0x00000000 SVR: 0x000001ff
timer: 0x000200ef therm: 0x00010000 err: 0x00010000 pcm: 0x00000400
SMP: AP CPU #1 Launched!
cpu1 AP:
ID: 0x01000000 VER: 0x80050010 LDR: 0x00000000 DFR: 0xffffffff
lint0: 0x00010700 lint1: 0x00000400 TPR: 0x00000000 SVR: 0x000001ff
timer: 0x000200ef therm: 0x00010000 err: 0x00010000 pcm: 0x00000400
SMP: AP CPU #2 Launched!
cpu2 AP:
ID: 0x02000000 VER: 0x80050010 LDR: 0x00000000 DFR: 0xffffffff
lint0: 0x00010700 lint1: 0x00000400 TPR: 0x00000000 SVR: 0x000001ff
timer: 0x000200ef therm: 0x00010000 err: 0x00010000 pcm: 0x00000400
ioapic0: routing intpin 4 (ISA IRQ 4) to lapic 1 vector 48
ioapic0: routing intpin 6 (ISA IRQ 6) to lapic 2 vector 48
ioapic0: routing intpin 9 (ISA IRQ 9) to lapic 3 vector 48
ioapic0: routing intpin 14 (ISA IRQ 14) to lapic 1 vector 49
ioapic0: routing intpin 15 (ISA IRQ 15) to lapic 2 vector 49
ioapic0: routing intpin 16 (PCI IRQ 16) to lapic 3 vector 49
ioapic0: routing intpin 18 (PCI IRQ 18) to lapic 1 vector 50
ioapic0: routing intpin 19 (PCI IRQ 19) to lapic 2 vector 50
ioapic0: routing intpin 22 (PCI IRQ 22) to lapic 3 vector 50
msi: Assigning MSI IRQ 257 to local APIC 1 vector 51
WARNING: WITNESS option enabled, expect reduced performance.
Trying to mount root from ufs:/dev/ufsid/49bca1defbad5bce
ct_to_ts([2009-07-06 21:47:17]) = 1246916837.000000000
start_init: trying /sbin/init
Linux ELF exec handler installed
linprocfs registered
ata5: CONNECT requested
ata5: reiniting channel ..
ata5: AHCI reset...
ata5: hardware reset ...
ata5: SATA connect timeout status=00000001
ata5: AHCI reset done: phy reset found no device
ata5: reinit done ..ata5:
DISCONNECT requested
ata5: reiniting channel ..
ata5: AHCI reset...
ata5: hardware reset ...
lock order reversal:
1st 0xffffffff80c0ffe0 pf task mtx (pf task mtx) @ /usr/home/nox/src8camata/src/sys/contrib/pf/net/pf_ioctl.c:1394
2nd 0xffffffff80e09240 ifnet (ifnet) @ /usr/home/nox/src8camata/src/sys/net/if.c:1887
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
_witness_debugger() at _witness_debugger+0x2e
witness_checkorder() at witness_checkorder+0x81e
_rw_rlock() at _rw_rlock+0x5f
ifunit() at ifunit+0x22
pfioctl() at pfioctl+0x1f6d
devfs_ioctl_f() at devfs_ioctl_f+0x76
kern_ioctl() at kern_ioctl+0xc5
ioctl() at ioctl+0xfd
syscall() at syscall+0x1af
Xfast_syscall() at Xfast_syscall+0xd0
--- syscall (54, FreeBSD ELF64, ioctl), rip = 0x80098798c, rsp = 0x7fffffffb568, rbp = 0x7fffffffb6c0 ---
tun0: bpf attached
altq: emulate 256000000Hz cpu clock
WARNING: attempt to net_add_domain(netgraph) after domainfinalize()
ata5: SATA connect timeout status=00000001
ata5: AHCI reset done: phy reset found no device
ata5: reinit done ..

Alexey Shuvaev

unread,
Jul 7, 2009, 5:16:24 AM7/7/09
to Mike Tancsa, freebsd...@freebsd.org
It seems you are doing newfs and then mounting it. Why?
If you want to remove the data do something like
dd if=/dev/zero of=/dev/ada2 bs=1m
or
dd if=/dev/random of=/dev/ada2 bs=1m

You could also try smaller block sizes (bs argument) near the bad blocks.

Just 0.02$,
Alexey.

Andriy Gapon

unread,
Jul 7, 2009, 6:12:29 AM7/7/09
to Scott Long, Edward Tomasz Napierala, Alexander Motin, FreeBSD-Current, sco...@freebsd.org, Mike Tancsa
on 07/07/2009 00:24 Scott Long said the following:

>> Still the box does a panic when writing to the disk that has bad
>> sectors on it. (I do newfs it between reboots). Again, not sure if
>> this is a "well, dont use a bad disk", but here is the panic again in
>> case it shows something useful.
>>
>
> This is a 'don't use a bad disk' panic; FreeBSD UFS and VM simply can't
> handle errors on reads or writes.

I think that this is not generally true, especially about reads.
And wasn't there a FreeBSD Foundation sponsored project to fix panics caused by
media going away? I think that panics on I/O errors are related to that.

trasz might be interested in this particular one.

--
Andriy Gapon

Mike Tancsa

unread,
Jul 7, 2009, 7:38:45 AM7/7/09
to Alexey Shuvaev, freebsd...@freebsd.org
At 05:16 AM 7/7/2009, Alexey Shuvaev wrote:
>It seems you are doing newfs and then mounting it. Why?

Just to make sure that post crash, I dont have to fsck it, or that as
part of the crash some undetected ufs corruption happened.

---Mike

Edward Tomasz Napierala

unread,
Jul 7, 2009, 8:49:56 AM7/7/09
to Andriy Gapon, FreeBSD-Current, sco...@freebsd.org, Alexander Motin, Mike Tancsa
On 0707T1312, Andriy Gapon wrote:
> >> Still the box does a panic when writing to the disk that has bad
> >> sectors on it. (I do newfs it between reboots). Again, not sure if
> >> this is a "well, dont use a bad disk", but here is the panic again in
> >> case it shows something useful.
> >>
> >
> > This is a 'don't use a bad disk' panic; FreeBSD UFS and VM simply can't
> > handle errors on reads or writes.
>
> I think that this is not generally true, especially about reads.
> And wasn't there a FreeBSD Foundation sponsored project to fix panics caused by
> media going away? I think that panics on I/O errors are related to that.

Device going away is slightly different case, but I believe it shouldn't
be generally true, except for filesystems with softupdates enabled. For
the most part, softupdates don't even try to handle I/O errors - they
just panic (e.g. "panic: softdep_move_dependencies: need merge code").

--
If you cut off my head, what would I say? Me and my head, or me and my body?

Harald Schmalzbauer

unread,
Jul 7, 2009, 2:49:25 PM7/7/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
Alexander Motin schrieb am 05.07.2009 09:18 (localtime):
...
>> Can I safely remove glabel from the unmounted fs and relabel the new
>> device?
>
> I don't very understand whet you mean by "safe"? Safe for what?

I tuned off journaling in UFS and removed the journal from the
partition. Although gjournal told me that the existing filesystem will
be destroyed this didn't happen since I did the newfs on the .journal
partition originally.
That's what I meant as "safe". In theory it was clear that I can safely
relabel the partition, but I was not sure if I understood everything
correctly.

So far I have not had any problems with ahci, works great! (ich9)
At least with HDs, haven't tested ODDs yet. (I'm having burning problems
for a long time so I'm not used to use ODDs with FreeBSD)

One thing I'm missing is the possibility to spin down the drive.
I have my system on a SSD, the HD is just for ports nad stuff which
usually I don't make use of.
Is that planned to be integrated?

Another question is why "camcontrol tur ada0" returns "Unit is not ready"
readcap also doesn't work.
My SSD reports write and read cache present, but disabled. Is the report
or the status bad?
camcontrol iden ada0
pass1: <OCZ SOLID SSD 02.10104> ATA/ATAPI-8 SATA 2.x device

Protocol SATA revision 2.x
device model OCZ SOLID SSD
serial number MK0508480C17B0004
firmware revision 02.10104


cylinders 16383
heads 16
sectors/track 63

lba supported 62586880 sectors
lba48 not supported


dma supported
overlap not supported

Feature Support Enable Value Vendor

write cache yes no
read ahead yes no
Native Command Queuing (NCQ) no - 0/0x00


Tagged Command Queuing (TCQ) no no 0/0x00

SMART yes yes


microcode download no no
security no no

power management yes yes
advanced power management no no 0/0x00

automatic acoustic management no no 254/0xFE 128/0x80


Thansk for your great work so far!

Best regards,

-Harry

signature.asc

Harald Schmalzbauer

unread,
Jul 7, 2009, 3:10:50 PM7/7/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
Alexander Motin schrieb am 07.07.2009 21:06 (localtime):
...
Thanks for your aeplanations!

>> Feature Support Enable Value Vendor
>> write cache yes no
>> read ahead yes no
>

> It is probably the truth. Existing ATA driver enables this features
> during drive reset sequence. New one doesn't do it yet.

Ic, but my "real" HD ast it enabled:

camcontrol iden ada1
pass2: <SAMSUNG HD322HJ 1AG01113> ATA/ATAPI-7 SATA 2.x device

Protocol SATA revision 2.x
device model SAMSUNG HD322HJ
serial number S17AJ9AS305229
firmware revision 1AG01113


cylinders 16383
heads 16
sectors/track 63

lba supported 268435455 sectors
lba48 supported 625142448 sectors


dma supported
overlap not supported

Feature Support Enable Value Vendor

write cache yes yes
read ahead yes yes
Native Command Queuing (NCQ) yes - 31/0x1F

Tagged Command Queuing (TCQ) no no 31/0x1F
SMART yes yes
microcode download yes yes
security yes no
power management yes yes
advanced power management yes no 0/0x00
automatic acoustic management yes no 0/0x00 254/0xFE

Does the old school HD enable caches itself?

Thanks,

-Harry

signature.asc

Alexander Motin

unread,
Jul 7, 2009, 3:15:43 PM7/7/09
to Harald Schmalzbauer, FreeBSD-Current, sco...@freebsd.org
Harald Schmalzbauer wrote:
> Alexander Motin schrieb am 07.07.2009 21:06 (localtime):
> ...
> Thanks for your aeplanations!
>
>>> Feature Support Enable Value Vendor
>>> write cache yes no
>>> read ahead yes no
>>
>> It is probably the truth. Existing ATA driver enables this features
>> during drive reset sequence. New one doesn't do it yet.
>
> Ic, but my "real" HD ast it enabled:
>
> Does the old school HD enable caches itself?

Yes. At least this specific one.
My OCZ Vertex SSD also has them enabled by default.

--
Alexander Motin

Alexander Motin

unread,
Jul 7, 2009, 3:06:11 PM7/7/09
to Harald Schmalzbauer, FreeBSD-Current, sco...@freebsd.org
Harald Schmalzbauer wrote:
> One thing I'm missing is the possibility to spin down the drive.
> I have my system on a SSD, the HD is just for ports nad stuff which
> usually I don't make use of.
> Is that planned to be integrated?

There is no problem, it just wasn't done yet. It should be possible to
submit respective ATA command via CAM pass interface to spin-down drive
immediately or to set wanted power management level, but respective
user-level part in camcontrol is also not implemented yet.

> Another question is why "camcontrol tur ada0" returns "Unit is not ready"
> readcap also doesn't work.

It is all SCSI commands. This implementation expects real direct ATA
operation without SCSI emulation parts. But this commands should work
for ATAPI devices, that are really SCSI deep inside.

> My SSD reports write and read cache present, but disabled. Is the report
> or the status bad?

> Feature Support Enable Value Vendor
> write cache yes no
> read ahead yes no

It is probably the truth. Existing ATA driver enables this features

during drive reset sequence. New one doesn't do it yet.

--
Alexander Motin

Alexander Motin

unread,
Jul 25, 2009, 3:19:10 PM7/25/09
to Juergen Lock, freebsd...@freebsd.org
Juergen Lock wrote:

> On Mon, Jul 06, 2009 at 11:16:46PM +0200, Juergen Lock wrote:
>> I tried this on the box with that optical drive that head no
>> longer likes (fails to be probed and generates an irq storm, see
>> http://docs.freebsd.org/cgi/mid.cgi?20090628101656.GA38983
>> ), and with ahci.ko loaded by loader.conf I got timeouts followed by
>> a panic:
>> http://people.freebsd.org/~nox/cam-ata.20090704-panic1.jpg
>> http://people.freebsd.org/~nox/cam-ata.20090704-panic2.jpg
>> [...]
>
> Ok I managed to dig myself out of this mess by connecting the problem
> drive to a jmicron pcie card that fell into my hands yesterday; I updated
> the test install to head from today and started reinstalling ports (bc of
> the shlib bumps) and testing the new hplip port on head (seems to work
> no worse than on 7), when suddenly ahci got problems: it printed endless
> retrying messages with the box' disk access led on solid, causing processes
> to get stuck. I was still able to switch to a console and enter ddb,
> but dumping (call doadump) failed and I didn't know what to look for
> otherwise, so I'm afraid I can't give more info about this hang. :(
> Anyway, could this be caused by ncq? I have disabled ahci.ko for now,
> we'll see if this `fixes' it...

Difficult to say without seeing those messages. NCQ errors actually may
lead to series (up to 32) of retries, as if there were several running
commands when error happened, all other commands are aborted and retried
after error recovery process completes. I haven't experimented with
really broken drives, but artificially generated NCQ errors were handled
properly on my tests.

> Here is the dmesg with ahci and the jmicron:
>
> atapci0: <JMicron JMB363 SATA300 controller> port 0xbf00-0xbf07,0xbe00-0xbe03,0xbd00-0xbd07,0xbc00-0xbc03,0xbb00-0xbb0f mem 0xfd8fe000-0xfd8fffff irq 17 at device 0.0 on pci2
> atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0xbb00
> ioapic0: routing intpin 17 (PCI IRQ 17) to lapic 0 vector 49
> atapci0: [MPSAFE]
> atapci0: [ITHREAD]
> atapci0: Reserved 0x2000 bytes for rid 0x24 type 3 at 0xfd8fe000
> atapci0: AHCI called from vendor specific driver
> atapci0: AHCI v1.00 controller with 2 3Gbps ports, PM supported
> atapci0: Caps: 64bit NCQ ALP AL CLO 3Gbps PM PMD SSC PSC 32cmd 2ports


> ata2: <ATA channel 0> on atapci0
> ata2: AHCI reset...
> ata2: hardware reset ...

> ata2: SATA connect timeout status=00000000
> ata2: AHCI reset done: phy reset found no device


> ata2: [MPSAFE]
> ata2: [ITHREAD]
> ata3: <ATA channel 1> on atapci0
> ata3: AHCI reset...
> ata3: hardware reset ...

> ata3: SATA connect time=0ms status=00000113
> ata3: ready wait time=11ms


> ata3: software reset port 15...

> ata3: ready wait time=0ms
> ata3: SIGNATURE: eb140101
> ata3: AHCI reset done: devices=00010000
> ata3: [MPSAFE]
> ata3: [ITHREAD]
> ata4: <ATA channel 2> on atapci0

> atapci0: Reserved 0x8 bytes for rid 0x10 type 4 at 0xbf00
> atapci0: Reserved 0x4 bytes for rid 0x14 type 4 at 0xbe00
> ata4: reset tp1 mask=03 ostat0=60 ostat1=70
> ata4: stat0=0x20 err=0x20 lsb=0x20 msb=0x20
> ata4: stat1=0x30 err=0x30 lsb=0x30 msb=0x30
> ata4: reset tp2 stat0=20 stat1=30 devices=0x0
> ata4: [MPSAFE]
> ata4: [ITHREAD]

As I can see here, your JMicron configured for combined mode, not for
plain AHCI, so it was handled by ata(4), not by ahci(4).

--
Alexander Motin

Juergen Lock

unread,
Jul 25, 2009, 3:00:01 PM7/25/09
to Juergen Lock, m...@freebsd.org, freebsd...@freebsd.org
On Mon, Jul 06, 2009 at 11:16:46PM +0200, Juergen Lock wrote:
> In article <4A50C331...@FreeBSD.org> you write:
> >Lucius Windschuh wrote:
> >> Hi Alexander.
> >>
> >> 2009/7/5 Alexander Motin <m...@freebsd.org>:
> >>> It's never late. I have just uploaded fresh patch:
> >>> http://people.freebsd.org/~mav/cam-ata.20090704.patch
> >>
> >> "make buildworld" with this patch stops in my configuration with:
> >>
> >> /usr/obj/usr/src/tmp/usr/lib/libcam.a(ata_all.o)(.text+0x263): In
> >> function `ata_max_mode':
> >> : undefined reference to `min'
> >>
> >> Simply adding
> >> #ifndef min
> >> #define min(a,b) (((a)<(b))?(a):(b))
> >> #endif
> >> in ata_all.c helps, obviously.
> >
> >Thanks.
>
> I tried this on the box with that optical drive that head no
> longer likes (fails to be probed and generates an irq storm, see
> http://docs.freebsd.org/cgi/mid.cgi?20090628101656.GA38983
> ), and with ahci.ko loaded by loader.conf I got timeouts followed by
> a panic:
> http://people.freebsd.org/~nox/cam-ata.20090704-panic1.jpg
> http://people.freebsd.org/~nox/cam-ata.20090704-panic2.jpg
> [...]

Ok I managed to dig myself out of this mess by connecting the problem
drive to a jmicron pcie card that fell into my hands yesterday; I updated
the test install to head from today and started reinstalling ports (bc of
the shlib bumps) and testing the new hplip port on head (seems to work
no worse than on 7), when suddenly ahci got problems: it printed endless
retrying messages with the box' disk access led on solid, causing processes
to get stuck. I was still able to switch to a console and enter ddb,
but dumping (call doadump) failed and I didn't know what to look for
otherwise, so I'm afraid I can't give more info about this hang. :(
Anyway, could this be caused by ncq? I have disabled ahci.ko for now,

we'll see if this `fixes' it... Oh and btw umass works better than
on 7-stable too, at least plugging in an usb key doesnt panic the box
like on 7, and i can mount it also.

Here is the dmesg with ahci and the jmicron:

Copyright (c) 1992-2009 The FreeBSD Project.


Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.

FreeBSD 8.0-BETA2 #0: Sat Jul 25 06:50:29 CEST 2009
n...@triton.kn-bremen.de:/usr/obj/usr/home/nox/src8postsil/src/sys/TRITON8


WARNING: WITNESS option enabled, expect reduced performance.

Preloaded elf kernel "/boot/kernel/kernel" at 0xffffffff81042000.
Preloaded elf obj module "/boot/kernel/ahci.ko" at 0xffffffff810421d0.


Timecounter "i8254" frequency 1193182 Hz quality 0

Calibrating TSC clock ... TSC clock: 2812829137 Hz
CPU: AMD Phenom(tm) II X4 920 Processor (2812.83-MHz K8-class CPU)


Origin = "AuthenticAMD" Id = 0x100f42 Stepping = 2
Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT>
Features2=0x802009<SSE3,MON,CX16,POPCNT>
AMD Features=0xee500800<SYSCALL,NX,MMX+,FFXSR,Page1GB,RDTSCP,LM,3DNow!+,3DNow!>
AMD Features2=0x37ff<LAHF,CMP,SVM,ExtAPIC,CR8,ABM,SSE4A,MAS,Prefetch,OSVW,IBS,SKINIT,WDT>
TSC: P-state invariant
L1 2MB data TLB: 48 entries, fully associative
L1 2MB instruction TLB: 16 entries, fully associative
L1 4KB data TLB: 48 entries, fully associative
L1 4KB instruction TLB: 32 entries, fully associative
L1 data cache: 64 kbytes, 64 bytes/line, 1 lines/tag, 2-way associative
L1 instruction cache: 64 kbytes, 64 bytes/line, 1 lines/tag, 2-way associative
L2 2MB data TLB: 128 entries, 2-way associative
L2 2MB instruction TLB: 0 entries, 2-way associative
L2 4KB data TLB: 512 entries, 4-way associative
L2 4KB instruction TLB: 512 entries, 4-way associative
L2 unified cache: 512 kbytes, 64 bytes/line, 1 lines/tag, 16-way associative
real memory = 9395240960 (8960 MB)
Physical memory chunk(s):
0x0000000000001000 - 0x000000000009bfff, 634880 bytes (155 pages)

0x000000000106c000 - 0x00000000cfddffff, 3470213120 bytes (847220 pages)
0x0000000100000000 - 0x000000021f8affff, 4824170496 bytes (1177776 pages)
avail memory = 8252354560 (7870 MB)

nfslock: pseudo-device
kbd: new array size 4
kbd1 at kbdmux0
mem: <memory>
null: <null device, zero device>
io: <I/O>
random: <entropy source, Software, Yarrow>
hptrr: RocketRAID 17xx/2xxx SATA controller driver v1.2

acpi0: <GBT GBTUACPI> on motherboard
PCIe: Memory Mapped configuration base @ 0xe0000000
ioapic0: routing intpin 9 (ISA IRQ 9) to lapic 0 vector 48
acpi0: [MPSAFE]
acpi0: [ITHREAD]
acpi0: Power Button (fixed)

acpi0: wakeup code va 0xffffff800001a000 pa 0x4000


acpi_bus_number: root bus has no _BBN, assuming 0
AcpiOsDerivePciId: \\_SB_.PCI0.SATA.SACS -> bus 0 dev 17 func 0
acpi_bus_number: root bus has no _BBN, assuming 0
AcpiOsDerivePciId: \\_SB_.PCI0.BAR1 -> bus 0 dev 0 func 0
acpi_bus_number: root bus has no _BBN, assuming 0
AcpiOsDerivePciId: \\_SB_.PCI0.SMB0.HETT -> bus 0 dev 20 func 0
acpi0: reservation of 0, a0000 (3) failed
acpi0: reservation of 100000, cfce0000 (3) failed

ACPI timer: 1/1 1/2 1/1 1/1 1/1 1/1 1/1 1/2 1/1 1/1 -> 10

intpin=a, irq=7


powerspec 3 supports D0 D3 current D0
MSI supports 1 message
pcib0: matched entry for 0.2.INTA
pcib0: slot 2 INTA hardwired to IRQ 18

found-> vendor=0x1002, dev=0x597b, revid=0x00
domain=0, bus=0, slot=5, func=0


class=06-04-00, hdrtype=0x01, mfdev=0
cmdreg=0x0007, statreg=0x0010, cachelnsz=1 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)

intpin=a, irq=11


powerspec 3 supports D0 D3 current D0
MSI supports 1 message

pcib0: matched entry for 0.5.INTA
pcib0: slot 5 INTA hardwired to IRQ 17


found-> vendor=0x1002, dev=0x597d, revid=0x00
domain=0, bus=0, slot=7, func=0
class=06-04-00, hdrtype=0x01, mfdev=0
cmdreg=0x0007, statreg=0x0010, cachelnsz=1 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)

intpin=a, irq=5
powerspec 3 supports D0 D3 current D0
MSI supports 1 message

pcib0: matched entry for 0.7.INTA
pcib0: slot 7 INTA hardwired to IRQ 19
found-> vendor=0x1002, dev=0x597f, revid=0x00
domain=0, bus=0, slot=10, func=0
class=06-04-00, hdrtype=0x01, mfdev=0
cmdreg=0x0007, statreg=0x0010, cachelnsz=1 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)

intpin=a, irq=7


powerspec 3 supports D0 D3 current D0
MSI supports 1 message
pcib0: matched entry for 0.10.INTA
pcib0: slot 10 INTA hardwired to IRQ 18
found-> vendor=0x1002, dev=0x4391, revid=0x00
domain=0, bus=0, slot=17, func=0
class=01-06-01, hdrtype=0x00, mfdev=0
cmdreg=0x0007, statreg=0x0230, cachelnsz=0 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)

intpin=a, irq=10
powerspec 2 supports D0 D3 current D0

map[10]: type I/O Port, range 32, base 0xff00, size 3, enabled
map[14]: type I/O Port, range 32, base 0xfe00, size 2, enabled
map[18]: type I/O Port, range 32, base 0xfd00, size 3, enabled
map[1c]: type I/O Port, range 32, base 0xfc00, size 2, enabled
map[20]: type I/O Port, range 32, base 0xfb00, size 4, enabled
map[24]: type Memory, range 32, base 0xfe02f000, size 10, enabled
pcib0: matched entry for 0.17.INTA
pcib0: slot 17 INTA hardwired to IRQ 22
found-> vendor=0x1002, dev=0x4397, revid=0x00
domain=0, bus=0, slot=18, func=0
class=0c-03-10, hdrtype=0x00, mfdev=1
cmdreg=0x0002, statreg=0x02a0, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)

intpin=a, irq=11


map[10]: type Memory, range 32, base 0xfe02e000, size 12, enabled
pcib0: matched entry for 0.18.INTA
pcib0: slot 18 INTA hardwired to IRQ 16
found-> vendor=0x1002, dev=0x4398, revid=0x00
domain=0, bus=0, slot=18, func=1
class=0c-03-10, hdrtype=0x00, mfdev=0
cmdreg=0x0007, statreg=0x02a0, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)

intpin=a, irq=11


map[10]: type Memory, range 32, base 0xfe02d000, size 12, enabled
pcib0: matched entry for 0.18.INTA
pcib0: slot 18 INTA hardwired to IRQ 16
found-> vendor=0x1002, dev=0x4396, revid=0x00
domain=0, bus=0, slot=18, func=2
class=0c-03-20, hdrtype=0x00, mfdev=0
cmdreg=0x0002, statreg=0x02b0, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=b, irq=11
powerspec 2 supports D0 D1 D2 D3 current D0
map[10]: type Memory, range 32, base 0xfe02c000, size 8, enabled
pcib0: matched entry for 0.18.INTB
pcib0: slot 18 INTB hardwired to IRQ 17
found-> vendor=0x1002, dev=0x4397, revid=0x00
domain=0, bus=0, slot=19, func=0
class=0c-03-10, hdrtype=0x00, mfdev=1
cmdreg=0x0002, statreg=0x02a0, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)

intpin=a, irq=7


map[10]: type Memory, range 32, base 0xfe02b000, size 12, enabled
pcib0: matched entry for 0.19.INTA
pcib0: slot 19 INTA hardwired to IRQ 18
found-> vendor=0x1002, dev=0x4398, revid=0x00
domain=0, bus=0, slot=19, func=1
class=0c-03-10, hdrtype=0x00, mfdev=0
cmdreg=0x0007, statreg=0x02a0, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)

intpin=a, irq=7


map[10]: type Memory, range 32, base 0xfe02a000, size 12, enabled
pcib0: matched entry for 0.19.INTA
pcib0: slot 19 INTA hardwired to IRQ 18
found-> vendor=0x1002, dev=0x4396, revid=0x00
domain=0, bus=0, slot=19, func=2
class=0c-03-20, hdrtype=0x00, mfdev=0
cmdreg=0x0002, statreg=0x02b0, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)

intpin=b, irq=5


powerspec 2 supports D0 D1 D2 D3 current D0
map[10]: type Memory, range 32, base 0xfe029000, size 8, enabled
pcib0: matched entry for 0.19.INTB
pcib0: slot 19 INTB hardwired to IRQ 19
found-> vendor=0x1002, dev=0x4385, revid=0x3a
domain=0, bus=0, slot=20, func=0
class=0c-05-00, hdrtype=0x00, mfdev=1
cmdreg=0x0403, statreg=0x0230, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found-> vendor=0x1002, dev=0x439c, revid=0x00
domain=0, bus=0, slot=20, func=1
class=01-01-8a, hdrtype=0x00, mfdev=0
cmdreg=0x0005, statreg=0x0230, cachelnsz=0 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=255
MSI supports 1 message
map[20]: type I/O Port, range 32, base 0xfa00, size 4, enabled
found-> vendor=0x1002, dev=0x4383, revid=0x00
domain=0, bus=0, slot=20, func=2
class=04-03-00, hdrtype=0x00, mfdev=0
cmdreg=0x0006, statreg=0x0410, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)

intpin=a, irq=11
powerspec 2 supports D0 D3 current D0

map[10]: type Memory, range 64, base 0xfe024000, size 14, enabled
pcib0: matched entry for 0.20.INTA
pcib0: slot 20 INTA hardwired to IRQ 16
found-> vendor=0x1002, dev=0x439d, revid=0x00
domain=0, bus=0, slot=20, func=3
class=06-01-00, hdrtype=0x00, mfdev=1
cmdreg=0x000f, statreg=0x0220, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found-> vendor=0x1002, dev=0x4384, revid=0x00
domain=0, bus=0, slot=20, func=4
class=06-04-01, hdrtype=0x01, mfdev=1
cmdreg=0x0027, statreg=0x02a0, cachelnsz=0 (dwords)
lattimer=0x40 (1920 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found-> vendor=0x1002, dev=0x4399, revid=0x00
domain=0, bus=0, slot=20, func=5
class=0c-03-10, hdrtype=0x00, mfdev=0
cmdreg=0x0002, statreg=0x02a0, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)

intpin=c, irq=7

pcib1: I/O decode 0xc000-0xcfff
pcib1: memory decode 0xfda00000-0xfdafffff


pcib1: prefetched decode 0xd0000000-0xdfffffff
pci1: <ACPI PCI bus> on pcib1
pci1: domain=0, physical bus=1
found-> vendor=0x1002, dev=0x9498, revid=0x00
domain=0, bus=1, slot=0, func=0
class=03-00-00, hdrtype=0x00, mfdev=1
cmdreg=0x0007, statreg=0x0010, cachelnsz=1 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)

intpin=a, irq=7


powerspec 3 supports D0 D1 D2 D3 current D0
MSI supports 1 message, 64 bit
map[10]: type Prefetchable Memory, range 64, base 0xd0000000, size 28, enabled
pcib1: requested memory range 0xd0000000-0xdfffffff: good

map[18]: type Memory, range 64, base 0xfdae0000, size 16, enabled
pcib1: requested memory range 0xfdae0000-0xfdaeffff: good
map[20]: type I/O Port, range 32, base 0xce00, size 8, enabled
pcib1: requested I/O range 0xce00-0xceff: in range


pcib1: matched entry for 1.0.INTA
pcib1: slot 0 INTA hardwired to IRQ 18
found-> vendor=0x1002, dev=0xaa38, revid=0x00
domain=0, bus=1, slot=0, func=1
class=04-03-00, hdrtype=0x00, mfdev=1
cmdreg=0x0006, statreg=0x0010, cachelnsz=1 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)

intpin=b, irq=7


powerspec 3 supports D0 D1 D2 D3 current D0
MSI supports 1 message, 64 bit

map[10]: type Memory, range 64, base 0xfdafc000, size 14, enabled
pcib1: requested memory range 0xfdafc000-0xfdafffff: good


pcib1: matched entry for 1.0.INTB
pcib1: slot 0 INTB hardwired to IRQ 19

vgapci0: <VGA-compatible display> port 0xce00-0xceff mem 0xd0000000-0xdfffffff,0xfdae0000-0xfdaeffff irq 18 at device 0.0 on pci1


pci1: <multimedia, HDA> at device 0.1 (no driver attached)

pcib2: <ACPI PCI-PCI bridge> irq 17 at device 5.0 on pci0


pcib2: domain 0
pcib2: secondary bus 2
pcib2: subordinate bus 2

pcib2: I/O decode 0xb000-0xbfff
pcib2: memory decode 0xfd800000-0xfd8fffff
pcib2: prefetched decode 0xfdf00000-0xfdffffff


pci2: <ACPI PCI bus> on pcib2
pci2: domain=0, physical bus=2

found-> vendor=0x197b, dev=0x2363, revid=0x03
domain=0, bus=2, slot=0, func=0
class=01-04-00, hdrtype=0x00, mfdev=0


cmdreg=0x0007, statreg=0x0010, cachelnsz=1 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)

intpin=a, irq=11
powerspec 2 supports D0 D3 current D0

map[10]: type I/O Port, range 32, base 0xbf00, size 3, enabled
pcib2: requested I/O range 0xbf00-0xbf07: in range
map[14]: type I/O Port, range 32, base 0xbe00, size 2, enabled
pcib2: requested I/O range 0xbe00-0xbe03: in range
map[18]: type I/O Port, range 32, base 0xbd00, size 3, enabled
pcib2: requested I/O range 0xbd00-0xbd07: in range
map[1c]: type I/O Port, range 32, base 0xbc00, size 2, enabled
pcib2: requested I/O range 0xbc00-0xbc03: in range
map[20]: type I/O Port, range 32, base 0xbb00, size 4, enabled
pcib2: requested I/O range 0xbb00-0xbb0f: in range
map[24]: type Memory, range 32, base 0xfd8fe000, size 13, enabled
pcib2: requested memory range 0xfd8fe000-0xfd8fffff: good


pcib2: matched entry for 2.0.INTA

pcib2: slot 0 INTA hardwired to IRQ 17
atapci0: <JMicron JMB363 SATA300 controller> port 0xbf00-0xbf07,0xbe00-0xbe03,0xbd00-0xbd07,0xbc00-0xbc03,0xbb00-0xbb0f mem 0xfd8fe000-0xfd8fffff irq 17 at device 0.0 on pci2
atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0xbb00
ioapic0: routing intpin 17 (PCI IRQ 17) to lapic 0 vector 49
atapci0: [MPSAFE]
atapci0: [ITHREAD]


atapci0: Reserved 0x2000 bytes for rid 0x24 type 3 at 0xfd8fe000
atapci0: AHCI called from vendor specific driver

atapci0: AHCI v1.00 controller with 2 3Gbps ports, PM supported
atapci0: Caps: 64bit NCQ ALP AL CLO 3Gbps PM PMD SSC PSC 32cmd 2ports


ata2: <ATA channel 0> on atapci0
ata2: AHCI reset...
ata2: hardware reset ...

ata2: SATA connect timeout status=00000000
ata2: AHCI reset done: phy reset found no device


ata2: [MPSAFE]
ata2: [ITHREAD]
ata3: <ATA channel 1> on atapci0
ata3: AHCI reset...
ata3: hardware reset ...

ata3: SATA connect time=0ms status=00000113
ata3: ready wait time=11ms

ata3: software reset port 15...

ata3: ready wait time=0ms
ata3: SIGNATURE: eb140101
ata3: AHCI reset done: devices=00010000
ata3: [MPSAFE]
ata3: [ITHREAD]
ata4: <ATA channel 2> on atapci0

atapci0: Reserved 0x8 bytes for rid 0x10 type 4 at 0xbf00
atapci0: Reserved 0x4 bytes for rid 0x14 type 4 at 0xbe00
ata4: reset tp1 mask=03 ostat0=60 ostat1=70
ata4: stat0=0x20 err=0x20 lsb=0x20 msb=0x20
ata4: stat1=0x30 err=0x30 lsb=0x30 msb=0x30
ata4: reset tp2 stat0=20 stat1=30 devices=0x0
ata4: [MPSAFE]
ata4: [ITHREAD]

pcib3: <ACPI PCI-PCI bridge> irq 19 at device 7.0 on pci0


pcib3: domain 0
pcib3: secondary bus 3
pcib3: subordinate bus 3

pcib3: I/O decode 0xe000-0xefff
pcib3: memory decode 0xfde00000-0xfdefffff
pcib3: prefetched decode 0xfdd00000-0xfddfffff


pci3: <ACPI PCI bus> on pcib3
pci3: domain=0, physical bus=3

found-> vendor=0x8086, dev=0x10b9, revid=0x06


domain=0, bus=3, slot=0, func=0
class=02-00-00, hdrtype=0x00, mfdev=0
cmdreg=0x0007, statreg=0x0010, cachelnsz=1 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=5

powerspec 2 supports D0 D3 current D0
MSI supports 1 message, 64 bit

map[10]: type Memory, range 32, base 0xfdee0000, size 17, enabled
pcib3: requested memory range 0xfdee0000-0xfdefffff: good
map[14]: type Memory, range 32, base 0xfdec0000, size 17, enabled
pcib3: requested memory range 0xfdec0000-0xfdedffff: good
map[18]: type I/O Port, range 32, base 0xef00, size 5, enabled
pcib3: requested I/O range 0xef00-0xef1f: in range


pcib3: matched entry for 3.0.INTA

pcib3: slot 0 INTA hardwired to IRQ 19
em0: <Intel(R) PRO/1000 Network Connection 6.9.14> port 0xef00-0xef1f mem 0xfdee0000-0xfdefffff,0xfdec0000-0xfdedffff irq 19 at device 0.0 on pci3
em0: Reserved 0x20000 bytes for rid 0x10 type 3 at 0xfdee0000


em0: attempting to allocate 1 MSI vectors (1 supported)

msi: routing MSI IRQ 256 to local APIC 0 vector 50


em0: using IRQ 256 for MSI
em0: Using MSI interrupt
em0: [FILTER]
em0: bpf attached
em0: Ethernet address: 00:1b:21:34:ef:46

pcib4: <ACPI PCI-PCI bridge> irq 18 at device 10.0 on pci0


pcib4: domain 0
pcib4: secondary bus 4
pcib4: subordinate bus 4

pcib4: I/O decode 0xd000-0xdfff
pcib4: memory decode 0xfdc00000-0xfdcfffff
pcib4: prefetched decode 0xfdb00000-0xfdbfffff


pci4: <ACPI PCI bus> on pcib4
pci4: domain=0, physical bus=4

found-> vendor=0x10ec, dev=0x8168, revid=0x02
domain=0, bus=4, slot=0, func=0


class=02-00-00, hdrtype=0x00, mfdev=0
cmdreg=0x0007, statreg=0x0010, cachelnsz=1 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)

intpin=a, irq=7


powerspec 3 supports D0 D1 D2 D3 current D0
MSI supports 2 messages, 64 bit
MSI-X supports 2 messages in map 0x20

map[10]: type I/O Port, range 32, base 0xde00, size 8, enabled
pcib4: requested I/O range 0xde00-0xdeff: in range
map[18]: type Prefetchable Memory, range 64, base 0xfdbff000, size 12, enabled
pcib4: requested memory range 0xfdbff000-0xfdbfffff: good
map[20]: type Prefetchable Memory, range 64, base 0xfdbe0000, size 16, enabled
pcib4: requested memory range 0xfdbe0000-0xfdbeffff: good
pcib4: matched entry for 4.0.INTA
pcib4: slot 0 INTA hardwired to IRQ 18
re0: <RealTek 8168/8168B/8168C/8168CP/8168D/8111B/8111C/8111CP PCIe Gigabit Ethernet> port 0xde00-0xdeff mem 0xfdbff000-0xfdbfffff,0xfdbe0000-0xfdbeffff irq 18 at device 0.0 on pci4
re0: Reserved 0x1000 bytes for rid 0x18 type 3 at 0xfdbff000


re0: MSI count : 2
re0: attempting to allocate 1 MSI vectors (2 supported)

msi: routing MSI IRQ 257 to local APIC 0 vector 52


re0: using IRQ 257 for MSI
re0: Using 1 MSI messages
re0: Chip rev. 0x3c000000
re0: MAC rev. 0x00400000
miibus0: <MII bus> on re0
rgephy0: <RTL8169S/8110S/8211B media interface> PHY 1 on miibus0
rgephy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
re0: bpf attached
re0: Ethernet address: 00:1f:d0:d7:4c:1b
re0: [MPSAFE]
re0: [FILTER]

ahci0: <AHCI controller> port 0xff00-0xff07,0xfe00-0xfe03,0xfd00-0xfd07,0xfc00-0xfc03,0xfb00-0xfb0f mem 0xfe02f000-0xfe02f3ff irq 22 at device 17.0 on pci0
ahci0: Reserved 0x400 bytes for rid 0x24 type 3 at 0xfe02f000


ioapic0: routing intpin 22 (PCI IRQ 22) to lapic 0 vector 51

ahci0: [MPSAFE]
ahci0: [ITHREAD]
ahci0: AHCI v1.10 with 6 3Gbps ports, Port Multiplier supported
ahci0: Caps: 64bit NCQ SNTF MPS ALP AL CLO 3Gbps PM PMD SSC PSC 32cmd CCC 6ports
ahcich0: <AHCI channel> at channel 0 on ahci0
ahcich0: [MPSAFE]
ahcich0: [ITHREAD]
ahcich1: <AHCI channel> at channel 1 on ahci0
ahcich1: [MPSAFE]
ahcich1: [ITHREAD]
ahcich2: <AHCI channel> at channel 2 on ahci0
ahcich2: [MPSAFE]
ahcich2: [ITHREAD]
ahcich3: <AHCI channel> at channel 3 on ahci0
ahcich3: [MPSAFE]
ahcich3: [ITHREAD]
ahcich4: <AHCI channel> at channel 4 on ahci0
ahcich4: [MPSAFE]
ahcich4: [ITHREAD]
ahcich5: <AHCI channel> at channel 5 on ahci0
ahcich5: [MPSAFE]
ahcich5: [ITHREAD]


ohci0: <OHCI (generic) USB controller> mem 0xfe02e000-0xfe02efff irq 16 at device 18.0 on pci0
ohci0: Reserved 0x1000 bytes for rid 0x10 type 3 at 0xfe02e000

ioapic0: routing intpin 16 (PCI IRQ 16) to lapic 0 vector 53


ohci0: [MPSAFE]
ohci0: [ITHREAD]
usbus0: <OHCI (generic) USB controller> on ohci0
ohci1: <OHCI (generic) USB controller> mem 0xfe02d000-0xfe02dfff irq 16 at device 18.1 on pci0
ohci1: Reserved 0x1000 bytes for rid 0x10 type 3 at 0xfe02d000
ohci1: [MPSAFE]
ohci1: [ITHREAD]
usbus1: <OHCI (generic) USB controller> on ohci1
ehci0: <EHCI (generic) USB 2.0 controller> mem 0xfe02c000-0xfe02c0ff irq 17 at device 18.2 on pci0
ehci0: Reserved 0x100 bytes for rid 0x10 type 3 at 0xfe02c000

pcib5: <ACPI PCI-PCI bridge> at device 20.4 on pci0
pcib5: domain 0
pcib5: secondary bus 5
pcib5: subordinate bus 5
pcib5: I/O decode 0xa000-0xafff
pcib5: memory decode 0xf8000000-0xfcffffff
pcib5: prefetched decode 0xfd900000-0xfd9fffff
pcib5: Subtractively decoded bridge.
pci5: <ACPI PCI bus> on pcib5
pci5: domain=0, physical bus=5
found-> vendor=0x14f1, dev=0x8800, revid=0x05
domain=0, bus=5, slot=6, func=0


class=04-00-00, hdrtype=0x00, mfdev=1
cmdreg=0x0006, statreg=0x0290, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x14 (5000 ns), maxlat=0x37 (13750 ns)

intpin=a, irq=3
powerspec 2 supports D0 D3 current D0

map[10]: type Memory, range 32, base 0xf9000000, size 24, enabled

pcib5: requested memory range 0xf9000000-0xf9ffffff: good
pcib5: matched entry for 5.6.INTA
pcib5: slot 6 INTA hardwired to IRQ 20
found-> vendor=0x14f1, dev=0x8811, revid=0x05
domain=0, bus=5, slot=6, func=1


class=04-80-00, hdrtype=0x00, mfdev=1
cmdreg=0x0006, statreg=0x0290, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x04 (1000 ns), maxlat=0xff (63750 ns)

intpin=a, irq=3
powerspec 2 supports D0 D3 current D0

map[10]: type Memory, range 32, base 0xf8000000, size 24, enabled

pcib5: requested memory range 0xf8000000-0xf8ffffff: good
pcib5: matched entry for 5.6.INTA
pcib5: slot 6 INTA hardwired to IRQ 20
found-> vendor=0x14f1, dev=0x8802, revid=0x05
domain=0, bus=5, slot=6, func=2


class=04-80-00, hdrtype=0x00, mfdev=1
cmdreg=0x0006, statreg=0x0290, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x06 (1500 ns), maxlat=0x58 (22000 ns)

intpin=a, irq=3
powerspec 2 supports D0 D3 current D0

map[10]: type Memory, range 32, base 0xfb000000, size 24, enabled

pcib5: requested memory range 0xfb000000-0xfbffffff: good
pcib5: matched entry for 5.6.INTA
pcib5: slot 6 INTA hardwired to IRQ 20
found-> vendor=0x14f1, dev=0x8804, revid=0x05
domain=0, bus=5, slot=6, func=4


class=04-80-00, hdrtype=0x00, mfdev=1
cmdreg=0x0006, statreg=0x0290, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x06 (1500 ns), maxlat=0xff (63750 ns)

intpin=a, irq=3
powerspec 2 supports D0 D3 current D0

map[10]: type Memory, range 32, base 0xfa000000, size 24, enabled

pcib5: requested memory range 0xfa000000-0xfaffffff: good
pcib5: matched entry for 5.6.INTA
pcib5: slot 6 INTA hardwired to IRQ 20
found-> vendor=0x104c, dev=0x8024, revid=0x00
domain=0, bus=5, slot=14, func=0


class=0c-00-10, hdrtype=0x00, mfdev=0
cmdreg=0x0006, statreg=0x0210, cachelnsz=1 (dwords)
lattimer=0x20 (960 ns), mingnt=0x02 (500 ns), maxlat=0x04 (1000 ns)

intpin=a, irq=10


powerspec 2 supports D0 D1 D2 D3 current D0

map[10]: type Memory, range 32, base 0xfcfff000, size 11, enabled
pcib5: requested memory range 0xfcfff000-0xfcfff7ff: good


map[14]: type Memory, range 32, base 0xfcff8000, size 14, enabled

pcib5: requested memory range 0xfcff8000-0xfcffbfff: good
pcib5: matched entry for 5.14.INTA
pcib5: slot 14 INTA hardwired to IRQ 22
pci5: <multimedia, video> at device 6.0 (no driver attached)
pci5: <multimedia> at device 6.1 (no driver attached)
pci5: <multimedia> at device 6.2 (no driver attached)
pci5: <multimedia> at device 6.4 (no driver attached)
fwohci0: <Texas Instruments TSB43AB23> mem 0xfcfff000-0xfcfff7ff,0xfcff8000-0xfcffbfff irq 22 at device 14.0 on pci5


fwohci0: Reserved 0x800 bytes for rid 0x10 type 3 at 0xfcfff000
fwohci0: [MPSAFE]
fwohci0: [ITHREAD]
fwohci0: OHCI version 1.10 (ROM=0)
fwohci0: No. of Isochronous channels is 4.
fwohci0: EUI64 00:ef:de:f8:00:00:1f:d0
fwohci0: Phy 1394a available S400, 3 ports.
fwohci0: Link S400, max_rec 2048 bytes.
firewire0: <IEEE1394(FireWire) bus> on fwohci0
dcons_crom0: <dcons configuration ROM> on firewire0

dcons_crom0: bus_addr 0x28b8000

ahc_isa_probe 11: ioport 0xbc00 alloc failed


isa_probe_children: disabling PnP devices
atkbdc: atkbdc0 already exists; skipping it
fdc: fdc0 already exists; skipping it
sc: sc0 already exists; skipping it
uart: uart0 already exists; skipping it
vga: vga0 already exists; skipping it
isa_probe_children: probing non-PnP devices

orm0: <ISA Option ROMs> at iomem 0xc0000-0xcefff,0xd0000-0xd27ff on isa0


sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sc0: fb0, kbd1, terminal emulator: scteken (teken terminal)
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
ppc0: cannot reserve I/O port range
ppc0: <Parallel port> failed to probe at irq 7 on isa0
uart1: <ns8250> failed to probe at port 0x2f8-0x2ff irq 3 on isa0
uart2: not probed (disabled)
uart3: not probed (disabled)
isa_probe_children: probing PnP devices
Device configuration finished.

Reducing kern.maxvnodes 512451 -> 100000
procfs registered
lapic: Divisor 2, Frequency 100458188 hz
Timecounter "TSC" frequency 2812829137 Hz quality -100


Timecounters tick every 1.000 msec
pfsync0: bpf attached
lo0: bpf attached
pflog0: bpf attached

hptrr: no controller detected.firewire0: 1 nodes, maxhop <= 0 cable IRM irm(0) (me)
firewire0: bus manager 0

ata0: Identifying devices: 00000000


ata0: New devices: 00000000
ata1: Identifying devices: 00000000
ata1: New devices: 00000000

ata2: Identifying devices: 00000000
ata2: New devices: 00000000


ata3: Identifying devices: 00010000
ata3: New devices: 00010000

usbus0: 12Mbps Full Speed USB v1.0
usbus1: 12Mbps Full Speed USB v1.0
usbus2: 480Mbps High Speed USB v2.0
usbus3: 12Mbps Full Speed USB v1.0
usbus4: 12Mbps Full Speed USB v1.0
usbus5: 480Mbps High Speed USB v2.0
usbus6: 12Mbps Full Speed USB v1.0

ata3-master: pio=PIO4 wdma=WDMA2 udma=UDMA100 cable=40 wire
ata3: device_reset timeout=670us
acd0: <ATAPI BD B DH4B1S/7P5B> DVDR drive at ata3 as master
acd0: read 5512KB/s (5512KB/s) write 5512KB/s (5512KB/s), 16384KB buffer, SATA150
acd0: Reads: CDR, CDRW, CDDA stream, DVDROM, DVDR, packet


acd0: Writes: CDR, CDRW, DVDR, test write, burnproof

acd0: Audio: play, 2 volume levels


acd0: Mechanism: ejectable tray, unlocked
acd0: Medium: no/blank disc

ata4: Identifying devices: 00000000
ata4: New devices: 00000000
Waiting 5 seconds for SCSI devices to settle
ahcich0: AHCI reset...
ahcich0: hardware reset ...
ahcich0: SATA connect time=0ms status=00000123
ahcich0: ready wait time=0ms
ahcich0: AHCI reset done: devices=00000001
ahcich1: AHCI reset...
ahcich1: hardware reset ...
ahcich1: SATA connect time=0ms status=00000113
ahcich1: ready wait time=143ms
ahcich1: AHCI reset done: devices=00000001
ahcich2: AHCI reset...
ahcich2: hardware reset ...
ahcich2: SATA connect time=0ms status=00000123
ahcich2: ready wait time=0ms
ahcich2: AHCI reset done: devices=00000001
ahcich3: AHCI reset...
ahcich3: hardware reset ...
ahcich3: SATA connect timeout status=00000000
ahcich3: AHCI reset done: phy reset found no device
ahcich4: AHCI reset...
ahcich4: hardware reset ...
ahcich4: SATA connect timeout status=00000000
ahcich4: AHCI reset done: phy reset found no device
ahcich5: AHCI reset...
ahcich5: hardware reset ...
ahcich5: SATA connect timeout status=00000000
ahcich5: AHCI reset done: phy reset found no device


ugen0.1: <ATI> at usbus0
uhub0: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
ugen1.1: <ATI> at usbus1
uhub1: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1
ugen2.1: <ATI> at usbus2
uhub2: <ATI EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus2
ugen3.1: <ATI> at usbus3
uhub3: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus3
ugen4.1: <ATI> at usbus4
uhub4: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus4
ugen5.1: <ATI> at usbus5
uhub5: <ATI EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus5
ugen6.1: <ATI> at usbus6
uhub6: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus6
uhub6: 2 ports with 2 removable, self powered
uhub0: 3 ports with 3 removable, self powered
uhub1: 3 ports with 3 removable, self powered
uhub3: 3 ports with 3 removable, self powered
uhub4: 3 ports with 3 removable, self powered

uhub2: 6 ports with 6 removable, self powered
uhub5: 6 ports with 6 removable, self powered

ugen2.2: <HP> at usbus2


(probe3:sbp0:0:3:0): error 22
(probe3:sbp0:0:3:0): Unretryable Error
(probe0:sbp0:0:0:0): error 22
(probe0:sbp0:0:0:0): Unretryable Error
(probe1:sbp0:0:1:0): error 22
(probe1:sbp0:0:1:0): Unretryable Error
(probe2:sbp0:0:2:0): error 22
(probe2:sbp0:0:2:0): Unretryable Error
(probe4:sbp0:0:4:0): error 22
(probe4:sbp0:0:4:0): Unretryable Error
(probe5:sbp0:0:5:0): error 22
(probe5:sbp0:0:5:0): Unretryable Error
(probe6:sbp0:0:6:0): error 22
(probe6:sbp0:0:6:0): Unretryable Error

ahcich0: Poll timeout on slot 2
(aprobe0:ahcich0:0:15:0): Command timed out
(aprobe0:ahcich0:0:15:0): error 5
(aprobe0:ahcich0:0:15:0): Retries Exhausted
(aprobe0:ahcich0:0:0:0): SIGNATURE: 0000
ahcich1: Poll timeout on slot 2
(aprobe1:ahcich1:0:15:0): Command timed out
(aprobe1:ahcich1:0:15:0): error 5
(aprobe1:ahcich1:0:15:0): Retries Exhausted
(aprobe0:ahcich1:0:0:0): SIGNATURE: eb14
ahcich2: Poll timeout on slot 2
(aprobe2:ahcich2:0:15:0): Command timed out
(aprobe2:ahcich2:0:15:0): error 5
(aprobe2:ahcich2:0:15:0): Retries Exhausted
(aprobe0:ahcich2:0:0:0): SIGNATURE: 0000
ada0 at ahcich0 bus 0 target 0 lun 0
ada0: <Hitachi HDT721010SLA360 ST6OA31B> ATA/ATAPI-8 SATA 2.x device
ada0: Serial Number STF604MH0PU93B
ada0: 300.000MB/s transfers
ada0: 953868MB (1953523055 512 byte sectors: 16H 63S/T 16383C)
ada0: Native Command Queueing enabled
ada1 at ahcich2 bus 0 target 0 lun 0
ada1: <Hitachi HDT721010SLA360 ST6OA31B> ATA/ATAPI-8 SATA 2.x device
ada1: Serial Number STF604MH0PA68B
ada1: 300.000MB/s transfers
ada1: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C)
ada1: Native Command Queueing enabled
pass0 at ahcich0 bus 0 target 0 lun 0
pass0: <Hitachi HDT721010SLA360 ST6OA31B> ATA/ATAPI-8 SATA 2.x device
pass0: Serial Number STF604MH0PU93BGEOM: new disk ada0
GEOM: new disk ada1

pass0: 300.000MB/s transfers
pass1 at ahcich1 bus 0 target 0 lun 0
pass1: <PIONEER DVD-RW DVR-216D 1.09> Removable CD-ROM SCSI-0 device
pass1: Serial Number HJDP396785WL
pass1: 150.000MB/s transfers
pass2 at ahcich2 bus 0 target 0 lun 0
pass2: <Hitachi HDT721010SLA360 ST6OA31B> ATA/ATAPI-8 SATA 2.x device
pass2: Serial Number STF604MH0PA68B
pass2: 300.000MB/s transfers
ATA PseudoRAID loaded


SMP: AP CPU #2 Launched!
cpu2 AP:
ID: 0x02000000 VER: 0x80050010 LDR: 0x00000000 DFR: 0xffffffff

lint0: 0x00010700 lint1: 0x00000400 TPR: 0x00000000 SVR: 0x000001ff(cd0:
timer: 0x000200ef therm: 0x00010000 err: 0x00010000 pcm: 0x00000400ahcich1:0:
0:0): Retrying Command


SMP: AP CPU #3 Launched!
cpu3 AP:
ID: 0x03000000 VER: 0x80050010 LDR: 0x00000000 DFR: 0xffffffff
lint0: 0x00010700 lint1: 0x00000400 TPR: 0x00000000 SVR: 0x000001ff
timer: 0x000200ef therm: 0x00010000 err: 0x00010000 pcm: 0x00000400
SMP: AP CPU #1 Launched!
cpu1 AP:
ID: 0x01000000 VER: 0x80050010 LDR: 0x00000000 DFR: 0xffffffff
lint0: 0x00010700 lint1: 0x00000400 TPR: 0x00000000 SVR: 0x000001ff
timer: 0x000200ef therm: 0x00010000 err: 0x00010000 pcm: 0x00000400

ioapic0: routing intpin 4 (ISA IRQ 4) to lapic 1 vector 48
ioapic0: routing intpin 6 (ISA IRQ 6) to lapic 2 vector 48
ioapic0: routing intpin 9 (ISA IRQ 9) to lapic 3 vector 48
ioapic0: routing intpin 14 (ISA IRQ 14) to lapic 1 vector 49
ioapic0: routing intpin 15 (ISA IRQ 15) to lapic 2 vector 49
ioapic0: routing intpin 16 (PCI IRQ 16) to lapic 3 vector 49
ioapic0: routing intpin 18 (PCI IRQ 18) to lapic 1 vector 50
ioapic0: routing intpin 19 (PCI IRQ 19) to lapic 2 vector 50
ioapic0: routing intpin 22 (PCI IRQ 22) to lapic 3 vector 50
msi: Assigning MSI IRQ 257 to local APIC 1 vector 51
WARNING: WITNESS option enabled, expect reduced performance.

(cd0:ahcich1:0:0:0): error 6
(cd0:ahcich1:0:0:0): Unretryable Error
cd0 at ahcich1 bus 0 target 0 lun 0
cd0: <PIONEER DVD-RW DVR-216D 1.09> Removable CD-ROM SCSI-0 device
cd0: Serial Number HJDP396785WL
cd0: 150.000MB/s transfers
cd0: Attempt to query device size failed: UNIT ATTENTION, Power on, reset, or bus device reset occurred
GEOM: ada1: partition 1 does not start on a track boundary.
GEOM: ada1: partition 1 does not end on a track boundary.
GEOM: new disk cd0
GEOM: ada0s2: geometry does not match label (255h,63s != 16h,63s).
GEOM: ada1s3: geometry does not match label (255h,63s != 16h,63s).
(cd0:ahcich1:0:0:0): Retrying Command
(cd0:ahcich1:0:0:0): error 6
(cd0:ahcich1:0:0:0): Unretryable Error
(cd0:ahcich1:0:0:0): Retrying Command
(cd0:ahcich1:0:0:0): error 6
(cd0:ahcich1:0:0:0): Unretryable Error


Trying to mount root from ufs:/dev/ufsid/49bca1defbad5bce

ct_to_ts([2009-07-25 07:03:27]) = 1248505407.000000000


start_init: trying /sbin/init
Linux ELF exec handler installed
linprocfs registered

lock order reversal:
1st 0xffffffff80c1cbe0 pf task mtx (pf task mtx) @ /usr/home/nox/src8postsil/src/sys/contrib/pf/net/pf_ioctl.c:1394
2nd 0xffffffff80e15f40 ifnet (ifnet) @ /usr/home/nox/src8postsil/src/sys/net/if.c:1822


KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
_witness_debugger() at _witness_debugger+0x2e
witness_checkorder() at witness_checkorder+0x81e
_rw_rlock() at _rw_rlock+0x5f
ifunit() at ifunit+0x22
pfioctl() at pfioctl+0x1f6d
devfs_ioctl_f() at devfs_ioctl_f+0x76
kern_ioctl() at kern_ioctl+0xc5
ioctl() at ioctl+0xfd
syscall() at syscall+0x1af

Xfast_syscall() at Xfast_syscall+0xe1


--- syscall (54, FreeBSD ELF64, ioctl), rip = 0x80098798c, rsp = 0x7fffffffb568, rbp = 0x7fffffffb6c0 ---
tun0: bpf attached
altq: emulate 256000000Hz cpu clock

WARNING: attempt to domain_add(netgraph) after domainfinalize()
splash: image decoder found: green_saver
em0: Link is up 1000 Mbps Full Duplex
re0: link state changed to UP

em0: link state changed to UP

Alexander Motin

unread,
Jul 25, 2009, 4:25:56 PM7/25/09
to Juergen Lock, freebsd...@freebsd.org
Juergen Lock wrote:
> Ah so the recovery could take several minutes? Maybe I didn't wait
> long enough then...

Depends on number of errors. It should be incredibly bad case I think.

>> I haven't experimented with
>> really broken drives, but artificially generated NCQ errors were handled
>> properly on my tests.
>>

> OK I guess I should take a photo next time it happens... Btw, can the
> max # of `tags' be lowered with ncq too in case a drive cant handle
> too many? I think its `camcontrol tags' for scsi...

To allow some simplifications, current implementation supports NCQ in
all-or-none fashion. If drive reports queue support of less then 32
commands, then NCQ will not be used for it. It is not controllable via
`camcontrol tags` now, due to major difference between SATA NCQ and SCSI
TCQ operation principles.

> Ah that can be configured? Anyway there's only an optical drive on
> it atm so its probably not _that_ important. :)

On my system it can be configured via BIOS settings.

--
Alexander Motin

Juergen Lock

unread,
Jul 25, 2009, 4:11:14 PM7/25/09
to Alexander Motin, freebsd...@freebsd.org
On Sat, Jul 25, 2009 at 10:19:10PM +0300, Alexander Motin wrote:

Ah so the recovery could take several minutes? Maybe I didn't wait
long enough then...

> I haven't experimented with

> really broken drives, but artificially generated NCQ errors were handled
> properly on my tests.
>

OK I guess I should take a photo next time it happens... Btw, can the
max # of `tags' be lowered with ncq too in case a drive cant handle
too many? I think its `camcontrol tags' for scsi...

> > Here is the dmesg with ahci and the jmicron:

Ah that can be configured? Anyway there's only an optical drive on


it atm so its probably not _that_ important. :)

Thanx,
Juergen

Ilya Zhuravlev

unread,
Jul 28, 2009, 4:46:52 AM7/28/09
to Alexander Motin, FreeBSD-Current
Good day

ahci cannot attach drives
8.0-beta2, laptop asus k50in, nvidia MCP75L-based

ahci0: [THREAD]
ahci0: AHCI v1.20 with 2 3Gbps ports, Port Multiplier supported


ahcich0: <AHCI channel> at channel 0 on ahci0

ahcich0: [THREAD]


ahcich1: <AHCI channel> at channel 1 on ahci0

ahcich1: [THREAD]
......
(aprobe0:ahcich0:0:15:0): SIGNATURE: 0000


(aprobe0:ahcich0:0:0:0): SIGNATURE: 0000

(aprobe0:ahcich0:0:0:0): Uncorrected Parity Error
(aprobe0:ahcich0:0:0:0): Retrying Command
(aprobe0:ahcich0:0:0:0): Uncoreccted Parity Error
(aprobe0:ahcich0:0:0:0): error 5
(aprobe0:ahcich0:0:0:0): Retries Exhausted
(aprobe1:ahcich1:0:15:0): SIGNATURE: eb14


(aprobe0:ahcich1:0:0:0): SIGNATURE: eb14

(aprobe0:ahcich1:0:0:0): Uncoreccted Parity Error
(aprobe0:ahcich1:0:0:0): Retrying Command
(aprobe0:ahcich1:0:0:0): Uncoreccted Parity Error
(aprobe0:ahcich1:0:0:0): error 5
(aprobe0:ahcich1:0:0:0): Retries Exhausted

pciconf with ata-driver and ata-compat enabled in bios:
atapci0@pci0:0:11:0: class=0x010185 card=0x1cf71043 chip=0x0ab510de
rev=0xb1 hdr=0x00
vendor = 'Nvidia Corp'


class = mass storage
subclass = ATA

bar [10] = type I/O Port, range 32, base 0xc080, size 8, enabled
bar [14] = type I/O Port, range 32, base 0xc000, size 4, enabled
bar [18] = type I/O Port, range 32, base 0xbc00, size 8, enabled
bar [1c] = type I/O Port, range 32, base 0xb880, size 4, enabled
bar [20] = type I/O Port, range 32, base 0xb800, size 16, enabled
bar [24] = type Memory, range 32, base 0xfae7c000, size 8192, enabled
cap 01[44] = powerspec 2 supports D0 D3 current D0
cap 12[8c] = SATA Index-Data Pair
cap 05[b0] = MSI supports 8 messages, 64 bit

atacontrol for devices on channels attached


acd0
ad4

Harald Schmalzbauer

unread,
Jul 28, 2009, 5:39:25 PM7/28/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
Alexander Motin schrieb am 26.06.2009 20:47 (localtime):
...
> To hot-plug/unplug drive you should use `camcontrol reset ...` and then
> `camcontrol rescan`.

Is there something similar to 'atacontrol detach ata6'?
I'd like to do some testsand this was very helpful for me.

Best regards,

-Harry

signature.asc

Alexander Motin

unread,
Jul 29, 2009, 2:18:28 PM7/29/09
to Harald Schmalzbauer, FreeBSD-Current, sco...@freebsd.org

Not yet. But on my tests I am regularly using sequence of: unmount,
remove, rescan, insert, rescan, mount.

--
Alexander Motin

Alexander Motin

unread,
Jul 29, 2009, 2:21:23 PM7/29/09
to Ilya Zhuravlev, FreeBSD-Current

Try please to uncomment device_printf() lines inside ahci_ch_intr()
function. It could give some ideas about what's going on there.

--
Alexander Motin

Mike Tancsa

unread,
Jul 30, 2009, 1:09:09 PM7/30/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
Using HEAD from today (July 30) on an AMD64 kernel

CPU: AMD Phenom(tm) 9950 Quad-Core Processor (2608.81-MHz K8-class CPU)
real memory = 8589934592 (8192 MB)
avail memory = 8001212416 (7630 MB)

ahci0@pci0:0:17:0: class=0x010601 card=0x43911002
chip=0x43911002 rev=0x00 hdr=0x00
vendor = 'ATI Technologies Inc. / Advanced Micro Devices, Inc.'
device = 'SB700 SATA Controller [AHCI mode]'
class = mass storage
subclass = SATA
cap 01[60] = powerspec 2 supports D0 D3 current D0
cap 12[70] = SATA Index-Data Pair


0(freebsd-current2)% grep -i ahci /var/run/dmesg.boot
Preloaded elf obj module "/boot/kernel/ahci.ko" at 0xffffffff80a53728.
ahci0: <AHCI controller> port
0xb000-0xb007,0xa000-0xa003,0x9000-0x9007,0x8000-0x8003,0x7000-0x700f
mem 0xfbaffc00-0xfbafffff irq 22 at device 17.0 on pci0
ahci0: Reserved 0x400 bytes for rid 0x24 type 3 at 0xfbaffc00


ahci0: [MPSAFE]
ahci0: [ITHREAD]
ahci0: AHCI v1.10 with 6 3Gbps ports, Port Multiplier supported

ahci0: Caps: 64bit NCQ SNTF MPS ALP AL CLO 3Gbps PM PMD SSC PSC 32cmd
CCC 6ports


ahcich0: <AHCI channel> at channel 0 on ahci0

ahcich0: [MPSAFE]
ahcich0: [ITHREAD]


ahcich1: <AHCI channel> at channel 1 on ahci0

ahcich1: [MPSAFE]
ahcich1: [ITHREAD]
ahcich2: <AHCI channel> at channel 2 on ahci0
ahcich2: [MPSAFE]
ahcich2: [ITHREAD]
ahcich3: <AHCI channel> at channel 3 on ahci0
ahcich3: [MPSAFE]
ahcich3: [ITHREAD]
ahcich4: <AHCI channel> at channel 4 on ahci0
ahcich4: [MPSAFE]
ahcich4: [ITHREAD]
ahcich5: <AHCI channel> at channel 5 on ahci0
ahcich5: [MPSAFE]
ahcich5: [ITHREAD]

ahcich0: AHCI reset...
ahcich0: hardware reset ...
ahcich0: SATA connect time=0ms status=00000123
ahcich0: ready wait time=0ms
ahcich0: AHCI reset done: devices=00000001
ahcich1: AHCI reset...
ahcich1: hardware reset ...

ahcich1: SATA connect timeout status=00000000
ahcich1: AHCI reset done: phy reset found no device


ahcich2: AHCI reset...
ahcich2: hardware reset ...

ahcich2: SATA connect timeout status=00000000
ahcich2: AHCI reset done: phy reset found no device


ahcich3: AHCI reset...
ahcich3: hardware reset ...
ahcich3: SATA connect timeout status=00000000
ahcich3: AHCI reset done: phy reset found no device
ahcich4: AHCI reset...
ahcich4: hardware reset ...
ahcich4: SATA connect timeout status=00000000
ahcich4: AHCI reset done: phy reset found no device
ahcich5: AHCI reset...
ahcich5: hardware reset ...
ahcich5: SATA connect timeout status=00000000

ahcich5: AHCI reset done: phy reset found no device


ahcich0: Poll timeout on slot 2

(aprobe0:ahcich0:0:15:0): Command timed out
(aprobe0:ahcich0:0:15:0): error 5
(aprobe0:ahcich0:0:15:0): Retries Exhausted


(aprobe0:ahcich0:0:0:0): SIGNATURE: 0000

ada0 at ahcich0 bus 0 target 0 lun 0

pass0 at ahcich0 bus 0 target 0 lun 0

0(freebsd-current2)%


Tried with postmark and bonnie. Bonnie (no surprise) doesnt show any
differences, but postmark shows some

In AHCI mode

pm>set size 300 200000
pm>set transactions 15000
pm>set location /tinderbox
pm>run
Creating files...Done
Performing transactions..........Done
Deleting files...Done
Time:
22 seconds total
22 seconds of transactions (681 per second)

Files:
8005 created (363 per second)
Creation alone: 500 files (500 per second)
Mixed with transactions: 7505 files (341 per second)
7526 read (342 per second)
7462 appended (339 per second)
8005 deleted (363 per second)
Deletion alone: 510 files (510 per second)
Mixed with transactions: 7495 files (340 per second)

Data:
948.19 megabytes read (43.10 megabytes per second)
1008.47 megabytes written (45.84 megabytes per second)
pm>set transactions 10000
pm>run
Creating files...Done
Performing transactions..........Done
Deleting files...Done
Time:
14 seconds total
13 seconds of transactions (769 per second)

Files:
5555 created (396 per second)
Creation alone: 500 files (500 per second)
Mixed with transactions: 5055 files (388 per second)
4986 read (383 per second)
5009 appended (385 per second)
5555 deleted (396 per second)
Deletion alone: 610 files (610 per second)
Mixed with transactions: 4945 files (380 per second)

Data:
626.82 megabytes read (44.77 megabytes per second)
695.69 megabytes written (49.69 megabytes per second)
pm>

and in stock kernel ATA mode


pm>set size 300 200000
pm>set transactions 15000
pm>set location /tinderbox
pm>run
Creating files...Done
Performing transactions..........Done
Deleting files...Done
Time:
38 seconds total
37 seconds of transactions (405 per second)

Files:
8005 created (210 per second)
Creation alone: 500 files (500 per second)
Mixed with transactions: 7505 files (202 per second)
7526 read (203 per second)
7462 appended (201 per second)
8005 deleted (210 per second)
Deletion alone: 510 files (510 per second)
Mixed with transactions: 7495 files (202 per second)

Data:
948.19 megabytes read (24.95 megabytes per second)
1008.47 megabytes written (26.54 megabytes per second)
pm>
pm>set size 300 200000
pm>set transactions 10000
pm>set location /tinderbox
pm>run
Creating files...Done
Performing transactions..........Done
Deleting files...Done
Time:
24 seconds total
23 seconds of transactions (434 per second)

Files:
5555 created (231 per second)
Creation alone: 500 files (500 per second)
Mixed with transactions: 5055 files (219 per second)
4986 read (216 per second)
5009 appended (217 per second)
5555 deleted (231 per second)
Deletion alone: 610 files (610 per second)
Mixed with transactions: 4945 files (215 per second)

Data:
626.82 megabytes read (26.12 megabytes per second)
695.69 megabytes written (28.99 megabytes per second)

One small bug I noticed is that if I accidentally give camcontrol a
bogus value, the disk subsystem seems to lock up
#camcontrol inquiry 0:0


CTRL+T in another shell session I had running gives


load: 0.00 cmd: w 1043 [ufs] 60.90r 0.00u 0.00s 0% 304k
load: 0.00 cmd: w 1043 [ufs] 61.47r 0.00u 0.00s 0% 304k
load: 0.00 cmd: w 1043 [ufs] 61.91r 0.00u 0.00s 0% 304k
load: 0.00 cmd: w 1043 [ufs] 62.25r 0.00u 0.00s 0% 304k
load: 0.00 cmd: w 1043 [ufs] 62.49r 0.00u 0.00s 0% 304k
load: 0.00 cmd: w 1043 [ufs] 63.01r 0.00u 0.00s 0% 304k
load: 0.00 cmd: w 1043 [ufs] 63.26r 0.00u 0.00s 0% 304k
load: 0.00 cmd: w 1043 [ufs] 63.44r 0.00u 0.00s 0% 304k
load: 0.00 cmd: w 1043 [ufs] 63.64r 0.00u 0.00s 0% 304k
load: 0.00 cmd: w 1043 [ufs] 63.84r 0.00u 0.00s 0% 304k

On the console, its saying
ahcich0: Timeout on slot 23
ahcich0: Timeout on slot 2
ahcich0: Timeout on slot 14
ahcich0: Timeout on slot 26
ahcich0: Timeout on slot 6
ahcich0: Timeout on slot 18
ahcich0: Timeout on slot 30

---Mike

--------------------------------------------------------------------
Mike Tancsa, tel +1 519 651 3400
Sentex Communications, mi...@sentex.net
Providing Internet since 1994 www.sentex.net
Cambridge, Ontario Canada www.sentex.net/mike

Alexander Motin

unread,
Jul 30, 2009, 1:24:09 PM7/30/09
to Mike Tancsa, FreeBSD-Current, sco...@freebsd.org
Mike Tancsa wrote:
> Tried with postmark and bonnie. Bonnie (no surprise) doesnt show any
> differences, but postmark shows some
>
> In AHCI mode
> Time:
> 22 seconds total
> 22 seconds of transactions (681 per second)
>
> and in stock kernel ATA mode
> Time:
> 38 seconds total
> 37 seconds of transactions (405 per second)

"Some", you said? :) It's really cool! Have you checked it twice?

> One small bug I noticed is that if I accidentally give camcontrol a
> bogus value, the disk subsystem seems to lock up
> #camcontrol inquiry 0:0
>

> On the console, its saying
> ahcich0: Timeout on slot 23
> ahcich0: Timeout on slot 2
> ahcich0: Timeout on slot 14
> ahcich0: Timeout on slot 26
> ahcich0: Timeout on slot 6
> ahcich0: Timeout on slot 18
> ahcich0: Timeout on slot 30

Error recovery is still not finished.

--
Alexander Motin

Mike Tancsa

unread,
Jul 30, 2009, 3:04:34 PM7/30/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
At 01:24 PM 7/30/2009, Alexander Motin wrote:
>Mike Tancsa wrote:
>>Tried with postmark and bonnie. Bonnie (no surprise) doesnt show
>>any differences, but postmark shows some
>>In AHCI mode
>>Time:
>> 22 seconds total
>> 22 seconds of transactions (681 per second)
>>and in stock kernel ATA mode
>>Time:
>> 38 seconds total
>> 37 seconds of transactions (405 per second)
>
>"Some", you said? :) It's really cool! Have you checked it twice?


I just did, and it actually does vary quite a bit. I am going to
re-run some longer tests as well as reduce the amount of memory in
the machine as I wonder if thats throwing the results out of whack

I ran the same tests 7 times just now on both sets of drivers

AHCI
20 seconds of transactions (500 per second)
42 seconds of transactions (238 per second)
20 seconds of transactions (500 per second)
29 seconds of transactions (344 per second)
26 seconds of transactions (384 per second)
26 seconds of transactions (384 per second)
36 seconds of transactions (277 per second)

avg 375

ATA
20 seconds of transactions (500 per second)
51 seconds of transactions (196 per second)
50 seconds of transactions (200 per second)
40 seconds of transactions (250 per second)
52 seconds of transactions (192 per second)
20 seconds of transactions (500 per second)
40 seconds of transactions (250 per second)
avg 298


#!/bin/sh
d=`date "+%H-%M-%S"`
for counter in `jot 7`
do
echo $counter
echo Loop $counter >> /root/results$d
/usr/local/sbin/postmark /root/pm.pm >> /root/results$d
sleep 5
done

pm.pm is

set size 300 250000
set transactions 10000
set location /tinderbox
run
quit


One other detail, on the drive info, why does it show - for NCQ status ?

0(freebsd-current2)# camcontrol identify 0:0:0
pass0: <ST3250310NS SN05> ATA/ATAPI-8 SATA 2.x device

Protocol SATA revision 2.x
device model ST3250310NS
serial number 9SF0PRR5
firmware revision SN05


cylinders 16383
heads 16
sectors/track 63
lba supported 268435455 sectors

lba48 supported 488397168 sectors


dma supported
overlap not supported

Feature Support Enable Value Vendor


write cache yes yes
read ahead yes yes
Native Command Queuing (NCQ) yes - 31/0x1F
Tagged Command Queuing (TCQ) no no 31/0x1F
SMART yes yes
microcode download yes yes
security yes no
power management yes yes

advanced power management no no 0/0x00
automatic acoustic management no no 0/0x00 254/0xFE


atacontrol does it as well
# atacontrol cap ad4

Protocol SATA revision 2.x
device model ST3250310NS
serial number 9SF0PRR5
firmware revision SN05


cylinders 16383
heads 16
sectors/track 63
lba supported 268435455 sectors

lba48 supported 488397168 sectors


dma supported
overlap not supported

Feature Support Enable Value Vendor


write cache yes yes
read ahead yes yes
Native Command Queuing (NCQ) yes - 31/0x1F
Tagged Command Queuing (TCQ) no no 31/0x1F
SMART yes yes
microcode download yes yes
security yes no
power management yes yes

advanced power management no no 0/0x00
automatic acoustic management no no 0/0x00 254/0xFE


---Mike

--
>Alexander Motin
>_______________________________________________
>freebsd...@freebsd.org mailing list
>http://lists.freebsd.org/mailman/listinfo/freebsd-current
>To unsubscribe, send any mail to "freebsd-curre...@freebsd.org"

Alexander Motin

unread,
Jul 30, 2009, 3:34:43 PM7/30/09
to Mike Tancsa, FreeBSD-Current, sco...@freebsd.org
Mike Tancsa wrote:
> One other detail, on the drive info, why does it show - for NCQ status ?
>
> Native Command Queuing (NCQ) yes - 31/0x1F

NCQ doesn't need to be enabled or disabled on drive. It just can be
present/used or not. And that is what ada driver reports during attach.

--
Alexander Motin

Matthew D. Fuller

unread,
Aug 2, 2009, 3:44:19 AM8/2/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
For another datapoint.

On Thu, Jul 30, 2009 at 01:09:09PM -0400 I heard the voice of
Mike Tancsa, and lo! it spake thus:


> Using HEAD from today (July 30) on an AMD64 kernel

HEAD yesterday (Aug 1) on amd64

> ahci0@pci0:0:17:0: class=0x010601 card=0x43911002
> chip=0x43911002 rev=0x00 hdr=0x00
> vendor = 'ATI Technologies Inc. / Advanced Micro Devices, Inc.'
> device = 'SB700 SATA Controller [AHCI mode]'

Same device, in an Asus M4A79 Deluxe board.

ada0 at ahcich1 bus 0 target 0 lun 0
ada0: <WDC WD3000HLFS-01G6U0 04.04V01> ATA/ATAPI-8 SATA 2.x device
ada0: 300.000MB/s transfers
ada0: 286168MB (586072368 512 byte sectors: 16H 63S/T 16383C)


ada0: Native Command Queueing enabled

ada1 at ahcich2 bus 0 target 0 lun 0
ada1: <WDC WD3000HLFS-01G6U0 04.04V01> ATA/ATAPI-8 SATA 2.x device
ada1: 300.000MB/s transfers
ada1: 286168MB (586072368 512 byte sectors: 16H 63S/T 16383C)


ada1: Native Command Queueing enabled

cd0 at ahcich3 bus 0 target 0 lun 0
cd0: <PIONEER DVD-RW DVR-217D 1.06> Removable CD-ROM SCSI-0 device
cd0: 150.000MB/s transfers


I haven't done any benchmarking, but it certainly doesn't feel any
slower. And as a neat bonus, since my swap is glabel'd and all the
filesystems are ZFS, I didn't have to touch anything for the device
name changes :)


I've hit two issues:

1) `camcontrol inquiry ada0` (inquiry, not identify) seems to lock the
box down pretty hard (I haven't tried to reproduce, just did it
once in single user, and eventually had to hit the BRS). "Don't Do
That Then", and having done it once I know not to do it again, but
a bit of a rough edge.

2) Audio CD stuff on the DVD drive gets cranky.

- cdrecord doesn't seem to like it anymore. -scanbus says
cdrecord: Inappropriate ioctl for device. CAMIOCOMMAND ioctl
failed. Cannot open SCSI driver.

- Using cdda2wav to try and rip an audio track using the cd0 device
scrolls a lot of
Sorry, this driver and/or drive does not support cdda reading.
and such errors. Guessing the bus/id/lun from the devlist gives
what I assume is the same ioctl error from above.

This may well be a known and expected "haven't done that yet" of
course.


--
Matthew Fuller (MF4839) | full...@over-yonder.net
Systems/Network Administrator | http://www.over-yonder.net/~fullermd/
On the Internet, nobody can hear you scream.

Matthew D. Fuller

unread,
Aug 2, 2009, 6:00:11 AM8/2/09
to Joerg Schilling, freebsd...@freebsd.org
On Sun, Aug 02, 2009 at 11:32:01AM +0200 I heard the voice of
Joerg Schilling, and lo! it spake thus:
>
> Did someone iomplement a CAM driver that does not support the ioctl
> for sending SCSI commands, or do you have different problems?

Well, being as the failure is now that I upgraded and am using the CAM
AHCI driver, and it worked before [via ATAPICAM], I'm guessing it's
the former (hence posting it in the thread on that driver :). Though
I guess there's always the chance that other -CURRENT changes since my
last (early June) kernel ate it.

Gary Jennejohn

unread,
Aug 2, 2009, 6:30:23 AM8/2/09
to Matthew D. Fuller, Alexander Motin, FreeBSD-Current, sco...@freebsd.org
On Sun, 2 Aug 2009 02:44:19 -0500
"Matthew D. Fuller" <full...@over-yonder.net> wrote:

> 2) Audio CD stuff on the DVD drive gets cranky.
>
> - cdrecord doesn't seem to like it anymore. -scanbus says
> cdrecord: Inappropriate ioctl for device. CAMIOCOMMAND ioctl
> failed. Cannot open SCSI driver.
>

I saw this too. Reinstalling cdrecord (and all dependent ports) fixed it.

> - Using cdda2wav to try and rip an audio track using the cd0 device
> scrolls a lot of
> Sorry, this driver and/or drive does not support cdda reading.
> and such errors. Guessing the bus/id/lun from the devlist gives
> what I assume is the same ioctl error from above.
>

Can't speak to this.

---
Gary Jennejohn

Matthew D. Fuller

unread,
Aug 2, 2009, 6:35:28 AM8/2/09
to Gary Jennejohn, Alexander Motin, FreeBSD-Current, sco...@freebsd.org
On Sun, Aug 02, 2009 at 12:30:23PM +0200 I heard the voice of
Gary Jennejohn, and lo! it spake thus:

>
> I saw this too. Reinstalling cdrecord (and all dependent ports)
> fixed it.

Oh, well, good thing I'm in the middle of doing that for the library
version bumps anyway. Excellent :)


> > - Using cdda2wav [...]


>
> Can't speak to this.

Well, it's the same package, so I assume it's the same resolution.

Matthew D. Fuller

unread,
Aug 2, 2009, 12:56:42 PM8/2/09
to Gary Jennejohn, Alexander Motin, FreeBSD-Current, sco...@freebsd.org
On Sun, Aug 02, 2009 at 05:35:28AM -0500 I heard the voice of
Matthew D. Fuller, and lo! it spake thus:

> On Sun, Aug 02, 2009 at 12:30:23PM +0200 I heard the voice of
> Gary Jennejohn, and lo! it spake thus:
> >
> > I saw this too. Reinstalling cdrecord (and all dependent ports)
> > fixed it.
>
> Oh, well, good thing I'm in the middle of doing that for the library
> version bumps anyway. Excellent :)

Well, on the plus side, after the rebuild -scanbus... well, scanned
the bus.

On the minus, it also killed off all disk IO afterward. An
in-progress portupgrade halted in its tracks, editing or tailing files
is dead, _exiting_ vi is toast. The scanbus itself took a long time;
a minute or two. xconsole is scrolling a bunch of Timeout on slot
<various>'s. It's probably been 10 minutes since the scanbus returned
now (luckily, this ssh session was already up), and nothing's
progressed, so I guess I'll go push the BRS again.

Mike Tancsa

unread,
Aug 5, 2009, 11:12:27 AM8/5/09
to Alexander Motin, FreeBSD-Current

I did some other testing of the AHCI driver. Again, using

CPU: AMD Phenom(tm) 9950 Quad-Core Processor (2608.81-MHz K8-class

CPU) with RAM limited to 2G

real memory = 8589934592 (8192 MB)

avail memory = 2060632064 (1965 MB)

ATI IXP700/800 SATA300 controller


Doing some buildworld comparisons the ahci is a very tiny bit slower
when a dedicated drive is used as /usr/obj

#!/bin/sh
cd /usr/src
grep -ir blah * > /dev/null
for i in `jot 5`
do
date
echo $i
newfs /dev/ad10 > /dev/null
mount /dev/ad10 /usr/obj
sleep 10
date
time make -j8 buildworld > /var/log/build.out
date
sleep 20
sync
umount -f /usr/obj
done

and changing the above to be /dev/ada1 when testing with AHCI


0(freebsd-current2)% strings buildworld.ata | grep real
1484.51 real 4049.46 user 610.31 sys
1520.44 real 4055.02 user 612.02 sys
1500.76 real 4055.16 user 618.19 sys
1494.28 real 4057.88 user 614.68 sys
1498.65 real 4059.30 user 620.87 sys

0(freebsd-current2)% strings buildworld.ahci | grep real
1510.02 real 4069.71 user 614.54 sys
1510.29 real 4071.67 user 623.93 sys
1516.05 real 4070.56 user 626.20 sys
1517.72 real 4072.88 user 624.13 sys
1520.88 real 4072.99 user 625.03 sys


REAL
N Min Max Median Avg Stddev
ata 5 1484.51 1520.44 1498.65 1499.728 13.157529
ahci 5 1510.02 1520.88 1516.05 1514.992 4.7449837

USER
N Min Max Median Avg Stddev
ata 5 4049.46 4059.3 4055.16 4055.364 3.7695994
ahci 5 4069.71 4072.99 4071.67 4071.562 1.433691

SYS

N Min Max Median Avg Stddev
ata 5 614.54 626.2 624.13 622.766 4.6850966
ahci 5 614.54 626.2 624.13 622.766 4.6850966

Running the postmark benchmark 5 times

with

set size 29300 650000
set transactions 20000
set location /mnt/tmp
set subdirectories 90
set number 9000
run
quit

on a dedicated drive that I would newfs between tests, AHCI is
consistently better, sometimes wildly so.


e.g

PostMark v1.51 : 8/14/01
Reading configuration from file '/root/pm.pm'
Creating subdirectories...Done


Creating files...Done
Performing transactions..........Done
Deleting files...Done

Deleting subdirectories...Done
Time:
794 seconds total
678 seconds of transactions (29 per second)
Files:
18980 created (23 per second)
Creation alone: 9000 files (77 per second)
Mixed with transactions: 9980 files (14 per second)
9986 read (14 per second)
10014 appended (14 per second)
18980 deleted (23 per second)
Deletion alone: 8960 files (8960 per second)
Mixed with transactions: 10020 files (14 per second)
Data:
3748.66 megabytes read (4.72 megabytes per second)
7366.29 megabytes written (9.28 megabytes per second)

x ata-create
+ ahci-create
N Min Max Median Avg Stddev
x 5 43 82 69 66.6 14.808781
+ 5 67 86 77 76.8 7.5960516
x ata-create-mixed
+ ahci-create-mixed
N Min Max Median Avg Stddev
x 5 10 14 12 12.2 1.7888544
+ 5 13 14 13 13.4 0.54772256

x delete-ata
+ delete-ahci
N Min Max Median Avg Stddev
x 5 1493 8960 8960 7466.6 3339.3439
+ 5 8960 8960 8960 8960 0

x delete-mixed-ata
+ delete-mixed-ahci
N Min Max Median Avg Stddev
x 5 10 14 12 12.2 1.7888544
+ 5 13 15 13 13.6 0.89442719

Sam Fourman Jr.

unread,
Aug 6, 2009, 2:36:45 AM8/6/09
to Alexander Motin, FreeBSD-Current, sco...@freebsd.org
On Fri, Jun 26, 2009 at 1:47 PM, Alexander Motin<m...@freebsd.org> wrote:
> Hi.
>
> I would like to present for testing and feedback present state of my and
> Scott work on extending CAM subsystem to support ATA in addition to
> SCSI. At this moment we have

Are these patches in FreeBSD BETA2 (src from today)

I decided to try the iscsi client on FreeBSD 8 and I noticed that
da0 will not attach, but the same setup works on PC-BSD computer
aka FreeBSD 7.2

on the FreeBSD 8 i386 machine I get this message after

iscsi: version 2.1.0
xpt_dev_async called <-- This is why I am asking if it has anything
to do with these patches


Sam Fourman Jr.

Alexander Motin

unread,
Aug 6, 2009, 3:44:31 AM8/6/09
to Sam Fourman Jr., FreeBSD-Current, sco...@freebsd.org
Sam Fourman Jr. wrote:
> On Fri, Jun 26, 2009 at 1:47 PM, Alexander Motin<m...@freebsd.org> wrote:
>> I would like to present for testing and feedback present state of my and
>> Scott work on extending CAM subsystem to support ATA in addition to
>> SCSI. At this moment we have
>
> Are these patches in FreeBSD BETA2 (src from today)

Yes.

> I decided to try the iscsi client on FreeBSD 8 and I noticed that
> da0 will not attach, but the same setup works on PC-BSD computer
> aka FreeBSD 7.2
>
> on the FreeBSD 8 i386 machine I get this message after
>
> iscsi: version 2.1.0
> xpt_dev_async called <-- This is why I am asking if it has anything
> to do with these patches

What are you doing and how can I reproduce that?

--
Alexander Motin

Alexander Motin

unread,
Aug 6, 2009, 10:56:07 AM8/6/09
to Ilya Zhuravlev, FreeBSD-Current
Ilya Zhuravlev wrote:
> Sorry for long delay.
> boot -v, pciconf attached

I don't see that you've uncommented
//device_printf(dev, "%s ERROR is %08x cs %08x...
lines in ahci_ch_intr() and rebuilt kernel as I've said.

--
Alexander Motin

Alexander Motin

unread,
Aug 6, 2009, 5:13:44 PM8/6/09
to Sam Fourman Jr., FreeBSD-Current, sco...@freebsd.org

I've reproduced your problem.
Try attached patch. It fixed problem for me:

iscsi: version 2.1.0
pass0 at iscsi0 bus 0 target 0 lun 0
pass0: <NetBSD NetBSD iSCSI 0> Fixed Direct Access SCSI-3 device
GEOM: new disk da0
da0 at iscsi0 bus 0 target 0 lun 0
da0: <NetBSD NetBSD iSCSI 0> Fixed Direct Access SCSI-3 device

--
Alexander Motin

iscsi.patch

Alexander Motin

unread,
Aug 13, 2009, 1:02:03 PM8/13/09
to Ilya Zhuravlev, FreeBSD-Current
>>>> Try please to uncomment device_printf() lines inside ahci_ch_intr()
>>>> function. It could give some ideas about what's going on there.
>>>>
>>> Sorry for long delay.
>>> boot -v, pciconf attached
>>>
>>
>> I don't see that you've uncommented
>> //device_printf(dev, "%s ERROR is %08x cs %08x...
>> lines in ahci_ch_intr() and rebuilt kernel as I've said.
>>
>>
> Ehm, sorry, svn upping after edit was bad idea

Try this please:
http://p4db.freebsd.org/chv.cgi?CH=167141

--
Alexander Motin

It is loading more messages.
0 new messages