Age | Commit message (Collapse) | Author |
|
the correct size for my 4.TB volume. Original diff from dlg@ with some
tweaks by me; ok dlg@
|
|
kernel thread of its own. the api has changed (which will be fixed in the
manpage shortly) so all the users of sensor tasks that i can find have
been fixed too.
noone tested, so its going in to force people to run with it.
"put it in" deraadt@
|
|
ok marco@ then suggested deraadt@
|
|
OK tedu@, dlg@.
|
|
|
|
|
|
of new fields in the future is less disruptive. This is done similar
to how struct proc is handled for ps(1). ok jmc (man page changes)
tested fkr simon, and more suggestions from millert
|
|
ok dlg@, tested by jolan@
|
|
|
|
|
|
ok miod@ marco@ deraadt@
|
|
to get the right names for sensor creation.
|
|
attach it.
|
|
|
|
help from & ok dlg@
|
|
it turns out a drivers detach code isnt called when the machine is shutting
down, which meant my bits to stop bgrb and sync the cache werent being
run. without those bits being run the filesystems on these controllers
were never clean on reboot, so we'd always get an fsck.
so now we provide a shutdown hook which does get run on shutdown to sync
the cache properly.
found by claudio@
|
|
only ack the interrupts we deal with in the interrupt handler.
use the correct macros when setting the interrupt mask.
|
|
|
|
i can just check if this is non zero to see if a volume is degraded. this
means i dont have to pull the raid info page to find failed disks in the
volume inquiry.
|
|
volume is degraded, just if it is working or not. if a volume is degraded,
its still online, so we have to go look for missing disks. if a disk has
been replaced, but it is yet to be rebuilt, the firmware kindly tells us
that it needs rebuilding. we can figure out if a volume is degraded using
these two facts.
|
|
bioctl output. this is actually a bit of a struggle since the firmware
doesnt represent these states well at all. im only showing the obvious
ones: online, init, rebuild, and offline. i have no idea how they tell if
a volume is degraded.
|
|
as 0xff, and the command to query that phys disk will fail and cause the
ioctl to get stuck. so if the disk id is 0xff, fake an offline disk on
another bus since bioctl doesnt know how to show that properly.
|
|
|
|
|
|
|
|
|
|
|
|
they are.
|
|
|
|
|
|
about the disks that are configured on the controller. so far this fetches
the right volumes and disks in each volume, but doesnt properly fill in the
status, the size of both the volumes and disks, the type of raid, or the
firmware version of the physical disks.
|
|
find the names of our volumes.
|
|
|
|
|
|
|
|
|
|
be unaligned we basically need to bounce the contents of the message in and
out of what is submitted to the hardware. rather than have the callers of
arc_msgbuf do that, make arc_msgbuf do it for them. while we're here, make
arc_msgbuf do the checksumming and length checks so the callers dont have
to do that either.
this adds an alternative to arc_msgbuf that does the new functionality and
cuts arc_bio_alarm_state over to using it. i'll cut the other users of
arc_msgbuf over shortly and remove the old implementation.
|
|
|
|
alarm.
|
|
silence the alarm. the hardware can also report the state of the alarm,
but its embedded in a really large message im not 100% sure about yet.
|
|
|
|
|
|
|
|
|
|
controllers. this is horrible code that is set up to allow a process, (eg
and ioctl or the sensor thread) to issue a command and get a response.
|
|
just extra data. say there's no residual if that's the case.
|
|
|
|
flush the hbas cache on detach as well. writes on my raid5 seem to run fast
now.
|
|
the IOC_WBUF area in bus_space, and replies to it are read from the
IOC_RBUF area. the freebsd and linux drivers define these areas to be 32
dwords in length, but it then goes and casts these spaces to a struct that
has a 4 byte word at the start with the length of the message in it,
followed by a 124 byte buffer which is filled with the actual message in
it.
rather than screwing around with an extra struct and casts, we can define
this header as a register of its own, and the buffer as a separate region
in bus_space.
this simplifies command submission and the retrieval of the replies (which
is yet to be written properly).
|
|
dwords
|