Updated information about reproducibility and Linux kernel sr lock

This commit is contained in:
2025-04-24 11:46:04 +02:00
parent 972bca87ff
commit bc0c639ec8
9 changed files with 261 additions and 182 deletions

View File

@ -4,7 +4,7 @@ xorriso.texi.
xorriso - creates, loads, manipulates and writes ISO 9660 filesystem
images with Rock Ridge extensions.
Copyright (C) 2007 - 2024 Thomas Schmitt
Copyright (C) 2007 - 2025 Thomas Schmitt
Permission is granted to distribute this text freely.
INFO-DIR-SECTION Archiving
@ -287,7 +287,7 @@ character device. E.g.
By default xorriso will try to map the given address to /dev/hd* and
/dev/sr*. The command -scsi_dev_family can redirect the mapping from sr
to scd or sg. The latter does not suffer from the concurrency problems
which plagued /dev/sr of Linux kernels since version 3 up to 5.5. But
which plagued /dev/sr of Linux kernels since version 2.6 up to 5.5. But
it does not yield the same addresses which are used by mount(8) or by
open(2) for read(2).
On FreeBSD the device files have names like
@ -727,16 +727,16 @@ acquire the drive.
By default, xorriso tries to map Linux drive addresses to /dev/sr*
before they get opened for operating the drive. This coordinates
well with other use cases of optical drives, like mount(8). But
since year 2010 all /dev/sr* share a global lock which allows only
one drive to process an SCSI command while all others have to wait
for its completion. This yields awful throughput if more than one
drive is writing or reading simultaneously. The global lock is not
applied to device files /dev/sg* and also not if the xorriso drive
address is prepended by "stdio:".
So for simultaneous burn runs on modern GNU/Linux it is advisable
to perform -scsi_dev_family "sg" before any -dev, -indev, or
-outdev. The drive addresses may then well be given as /dev/sr*
but will nevertheless get used as the matching /dev/sg*.
between year 2010 and 2020 all /dev/sr* shared a global lock which
allowed only one drive to process an SCSI command while all others
had to wait for its completion. This yieldied awful throughput if
more than one drive was writing or reading simultaneously. The
global lock was never applied to device files /dev/sg* and also not
if the xorriso drive address is prepended by "stdio:".
So for simultaneous burn runs on GNU/Linux 2.6 to 5.5 it is
advisable to perform -scsi_dev_family "sg" before any -dev, -indev,
or -outdev. The drive addresses may then well be given as
/dev/sr*, but will nevertheless get used as the matching /dev/sg*.
If you decide so, consider to put the command into a global startup
file like /etc/opt/xorriso/rc.
-grow_blindly "off"|predicted_nwa
@ -6055,8 +6055,19 @@ it is used as time value to set the default of -volume date "uuid", sets
-boot_image "any" "gpt_disk_guid=" to "volume_date_uuid", -volume_date
"all_file_dates" to "set_to_mtime", and -iso_nowtime to
"=$SOURCE_DATE_EPOCH".
Startup files and program options can override the effect of
Startup files and program commands can override the effect of
SOURCE_DATE_EPOCH.
Be aware that by default xorriso puts its version information into the
Preparer Id field of the ISO 9660 Primary Volume Descriptor. This may
be desired in order to clearly define which xorriso version has to be
used for reproduction. But it may also be undesired because a wider
range of xorriso versions shall not be excluded from an attempt of
reproduction.
Use command -preparer_id with a text other than "@xorriso@" if you want
to override the default at first production time. This command may also
be used to explicitly set the preparer id as found in an ISO 9660
filesystem which shall be reproduced by a different version of xorriso.
The id can be inquired by command -pvd_info.

File: xorriso.info, Node: Seealso, Next: Bugreport, Prev: Environ, Up: Top
@ -6115,7 +6126,7 @@ for libburnia-project.org
15.2 Copyright
==============
Copyright (c) 2007 - 2024 Thomas Schmitt
Copyright (c) 2007 - 2025 Thomas Schmitt
Permission is granted to distribute this text freely. It shall only be
modified in sync with the technical properties of 'xorriso'. If you
make use of the license to derive modified versions of 'xorriso' then
@ -6768,55 +6779,55 @@ Node: Model3441
Node: Media6344
Node: Methods9265
Node: Drives11851
Node: Extras15803
Node: Processing21905
Node: Dialog25742
Node: Commands27431
Node: ArgSort29108
Node: AqDrive30602
Node: Loading37759
Node: Insert68512
Node: SetInsert80707
Node: Manip90943
Node: CmdFind103439
Node: Filter125299
Node: Writing129921
Node: SetWrite142415
Node: Bootable173847
Node: Jigdo206581
Node: Charset211584
Node: Exception214913
Node: DialogCtl221102
Node: Inquiry223704
Node: Navigate236399
Node: Verify248452
Node: Restore259601
Node: Emulation271808
Node: Scripting283384
Node: Frontend291639
Node: Examples301265
Node: ExDevices302443
Node: ExCreate303104
Node: ExDialog304404
Node: ExGrowing305675
Node: ExModifying306484
Node: ExBootable306994
Node: ExCharset307549
Node: ExPseudo308445
Node: ExCdrecord309372
Node: ExMkisofs309692
Node: ExGrowisofs311589
Node: ExException312742
Node: ExTime313200
Node: ExIncBackup313658
Node: ExRestore317684
Node: ExRecovery318630
Node: Files319202
Node: Environ320536
Node: Seealso321284
Node: Bugreport322084
Node: Legal322675
Node: CommandIdx323687
Node: ConceptIdx342993
Node: Extras15805
Node: Processing21907
Node: Dialog25744
Node: Commands27433
Node: ArgSort29110
Node: AqDrive30604
Node: Loading37784
Node: Insert68537
Node: SetInsert80732
Node: Manip90968
Node: CmdFind103464
Node: Filter125324
Node: Writing129946
Node: SetWrite142440
Node: Bootable173872
Node: Jigdo206606
Node: Charset211609
Node: Exception214938
Node: DialogCtl221127
Node: Inquiry223729
Node: Navigate236424
Node: Verify248477
Node: Restore259626
Node: Emulation271833
Node: Scripting283409
Node: Frontend291664
Node: Examples301290
Node: ExDevices302468
Node: ExCreate303129
Node: ExDialog304429
Node: ExGrowing305700
Node: ExModifying306509
Node: ExBootable307019
Node: ExCharset307574
Node: ExPseudo308470
Node: ExCdrecord309397
Node: ExMkisofs309717
Node: ExGrowisofs311614
Node: ExException312767
Node: ExTime313225
Node: ExIncBackup313683
Node: ExRestore317709
Node: ExRecovery318655
Node: Files319227
Node: Environ320561
Node: Seealso322000
Node: Bugreport322800
Node: Legal323391
Node: CommandIdx324403
Node: ConceptIdx343709

End Tag Table