Home | History | Annotate | Download | only in dev
History log of /src/sys/arch/usermode/dev/ld_thunkbus.c
RevisionDateAuthorComments
 1.34  13-Apr-2025  rin ld(4): Convert blkno argument for sc_dump() to daddr_t

PR kern/59153

(1) For backends that accept 64-bit block address, i.e.,
nvme(4), virtio(4), aac(4), iop(4), and mainbus(usermode/4),
this should enable to dump beyond 2Gi blocks.

(2) sdmmc(4) backend allows to dump up to the last block.

(3) For other backends, block address is handled as `int`.
Some of them may support blocks up to 4Gi, but I do not have
enough time to examine datasheets. So, continue to reject >2Gi
blocks as before.

XXX
This is KABI change, and cannot be pulled up into netbsd-{10,9}.

XXX
Compile-test only (for amd64/ALL) due to lack of large SSDs ;)

Thanks mlelstv@ for discussion and careful review!!
 1.33  04-Jun-2018  reinoud Its a hack, but make sure the pages are paged in
 1.32  13-Jan-2018  reinoud branches: 1.32.2;
Keep up with changes in ld(4): adding ioctl handling on the ld(4) instead of
using the old dedicated ldflush() function.
 1.31  13-Jan-2018  reinoud Add the missing strategy argument of ldattach()
 1.30  21-Jan-2012  reinoud Complete rewrite of the signal and spl framework for NetBSD/usermode

Signals are now moved from the sigaltstack ASAP and stacked on a replacement
stack for each processes.

Preemption now works though could be enhanced a bit more
 1.29  09-Jan-2012  reinoud Re-implement aio for ld_thunkbus. It seems to work fine though its not set by
default; define LD_USE_AIO or uncomment its setting at the top of the
sourcefile to enable it.
 1.28  09-Jan-2012  reinoud sizeof_t is allways >=0 and the check for >=0 thus allways is true and amd64
complains about this. This might explain the odd write errors that could
sometimes be reported. Those are/were probably a side effect of this.
 1.27  06-Jan-2012  reinoud Enhance debugging printfs to also report the functionname
 1.26  06-Jan-2012  jmcneill support disk images >= 2GB
 1.25  03-Jan-2012  reinoud Rename the debug printf's to use a thunk_ prefix to avoid confusion.
 1.24  14-Dec-2011  jmcneill set ld maxxfer to MAXPHYS
 1.23  13-Dec-2011  reinoud Remove dead code. The error variable was no longer used.
 1.22  13-Dec-2011  reinoud No need for the bounce-buffer anymore since pmap bahaves like it ought to
 1.21  13-Dec-2011  jmcneill - gc old aio implementation
- set busy before scheduling softint not after
- try not to write past end of backing file
- if B_PHYS flag is set, pread/write with bounce buffer and copyout/copyin
- use the correct offset in ld_thunkbus_dump
 1.20  09-Dec-2011  reinoud Disable aio usage in thunkbus_ld since mixing ucontext_t and threads is a NONO
according to the manpage.

Why is AIO using a pthread?
 1.19  27-Nov-2011  reinoud branches: 1.19.2;
Use AIO by default
 1.18  27-Nov-2011  reinoud Fix in-code declaration of the sigaction structure.
 1.17  27-Nov-2011  reinoud Implement the choice between using AIO or not.
 1.16  16-Sep-2011  reinoud branches: 1.16.2;
Remove the blockage of SIGALRM here too
 1.15  15-Sep-2011  reinoud Check reentry to prevent double use of the aiocb structure
 1.14  13-Sep-2011  reinoud Remove excess signal stack declarations and remove the clock and ld signals
from the signal stack since they are only issued shortly.
 1.13  12-Sep-2011  reinoud Move the clock device and the ld device to the new spl interrupt PIC
 1.12  05-Sep-2011  jmcneill use sigaltstack
 1.11  05-Sep-2011  reinoud Disable SIGALRM from interfering with this signal handler
 1.10  04-Sep-2011  reinoud Space around | (style)
 1.9  03-Sep-2011  jmcneill Now that pr45327 is fixed, remove BROKEN_SIGINFO code.
 1.8  03-Sep-2011  jmcneill add a workaround for kern/45327
 1.7  03-Sep-2011  jmcneill Get this compiling (but not quite linking yet) on Linux
 1.6  25-Aug-2011  reinoud When this debug printf is enabled, please also tell WHAT address one is using
for read/write.
 1.5  23-Aug-2011  jmcneill struct stat also has time_t in it, so we can't use that in the thunk api either
 1.4  23-Aug-2011  jmcneill don't use kmem from softint context
 1.3  13-Aug-2011  jmcneill call lddone from a softint instead of the signal handler, now reading from
disk works:

ld0 at mainbus0: /home/jmcneill/test.fs (33554432)
ld0: 32768 KB, 65 cyl, 16 head, 63 sec, 512 bytes/sect x 65536 sectors
boot device: ld0
root on ld0a dumps on ld0b
root file system type: ffs
WARNING: no TOD clock present
WARNING: using filesystem time
WARNING: CHECK AND RESET THE DATE!
 1.2  13-Aug-2011  jmcneill try to use aio_read/aio_write instead of pread/pwrite
 1.1  12-Aug-2011  jmcneill add a simple disk driver, pass the path to the disk image on the kernel command line:

soundwave$ ./netbsd /tmp/test.fs
NetBSD/usermode startup
[...]
ld0 at mainbus0: /tmp/test.fs (33554432)
ld0: 32768 KB, 8322 cyl, 64 head, 63 sec, 1 bytes/sect x 33554432 sectors
boot device: ld0
root on ld0a dumps on ld0b
 1.16.2.1  17-Apr-2012  yamt sync with head
 1.19.2.1  18-Feb-2012  mrg merge to -current.
 1.32.2.1  25-Jun-2018  pgoyette Sync with HEAD

RSS XML Feed