fix: Do not use IO threading for SATA disks (#107)

This commit is contained in:
Kroese 2024-06-09 18:33:32 +02:00 committed by GitHub
parent 392ae1bfe1
commit e8d407938c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -360,7 +360,7 @@ createDevice () {
local index="" local index=""
[ -n "$DISK_INDEX" ] && index=",bootindex=$DISK_INDEX" [ -n "$DISK_INDEX" ] && index=",bootindex=$DISK_INDEX"
local result="-drive file=$DISK_FILE,id=$DISK_ID,format=$DISK_FMT,cache=$DISK_CACHE,aio=$DISK_IO,discard=$DISK_DISCARD,detect-zeroes=on" local result=" -drive file=$DISK_FILE,id=$DISK_ID,format=$DISK_FMT,cache=$DISK_CACHE,aio=$DISK_IO,discard=$DISK_DISCARD,detect-zeroes=on"
case "${DISK_TYPE,,}" in case "${DISK_TYPE,,}" in
"auto" ) "auto" )
@ -373,7 +373,7 @@ createDevice () {
;; ;;
"ide" ) "ide" )
result+=",if=none \ result+=",if=none \
-device ich9-ahci,id=ahci${DISK_INDEX},addr=$DISK_ADDRESS,iothread=io2 \ -device ich9-ahci,id=ahci${DISK_INDEX},addr=$DISK_ADDRESS \
-device ide-hd,drive=${DISK_ID},bus=ahci$DISK_INDEX.0,rotation_rate=$DISK_ROTATION${index}" -device ide-hd,drive=${DISK_ID},bus=ahci$DISK_INDEX.0,rotation_rate=$DISK_ROTATION${index}"
echo "$result" echo "$result"
;; ;;
@ -404,7 +404,7 @@ addMedia () {
local index="" local index=""
local DISK_ID="cdrom$DISK_BUS" local DISK_ID="cdrom$DISK_BUS"
[ -n "$DISK_INDEX" ] && index=",bootindex=$DISK_INDEX" [ -n "$DISK_INDEX" ] && index=",bootindex=$DISK_INDEX"
local result="-drive file=$DISK_FILE,id=$DISK_ID,format=raw,cache=unsafe,readonly=on,media=cdrom" local result=" -drive file=$DISK_FILE,id=$DISK_ID,format=raw,cache=unsafe,readonly=on,media=cdrom"
case "${DISK_TYPE,,}" in case "${DISK_TYPE,,}" in
"auto" ) "auto" )
@ -417,7 +417,7 @@ addMedia () {
;; ;;
"ide" ) "ide" )
result+=",if=none \ result+=",if=none \
-device ich9-ahci,id=ahci${DISK_BUS},addr=$DISK_ADDRESS,iothread=io2 \ -device ich9-ahci,id=ahci${DISK_BUS},addr=$DISK_ADDRESS \
-device ide-cd,drive=${DISK_ID},bus=ahci${DISK_BUS}.0${index}" -device ide-cd,drive=${DISK_ID},bus=ahci${DISK_BUS}.0${index}"
echo "$result" echo "$result"
;; ;;
@ -448,7 +448,7 @@ addDisk () {
local DISK_FMT=$7 local DISK_FMT=$7
local DISK_IO=$8 local DISK_IO=$8
local DISK_CACHE=$9 local DISK_CACHE=$9
local DISK_EXT DIR DATA_SIZE FS PREV_FMT PREV_EXT CUR_SIZE OPTS local DISK_EXT DIR DATA_SIZE FS PREV_FMT PREV_EXT CUR_SIZE
DISK_EXT=$(fmt2ext "$DISK_FMT") DISK_EXT=$(fmt2ext "$DISK_FMT")
local DISK_FILE="$DISK_BASE.$DISK_EXT" local DISK_FILE="$DISK_BASE.$DISK_EXT"
@ -501,8 +501,7 @@ addDisk () {
fi fi
OPTS=$(createDevice "$DISK_FILE" "$DISK_TYPE" "$DISK_INDEX" "$DISK_ADDRESS" "$DISK_FMT" "$DISK_IO" "$DISK_CACHE") DISK_OPTS+=$(createDevice "$DISK_FILE" "$DISK_TYPE" "$DISK_INDEX" "$DISK_ADDRESS" "$DISK_FMT" "$DISK_IO" "$DISK_CACHE")
DISK_OPTS+=" $OPTS"
return 0 return 0
} }
@ -517,9 +516,7 @@ addDevice () {
[ -z "$DISK_DEV" ] && return 0 [ -z "$DISK_DEV" ] && return 0
[ ! -b "$DISK_DEV" ] && error "Device $DISK_DEV cannot be found! Please add it to the 'devices' section of your compose file." && exit 55 [ ! -b "$DISK_DEV" ] && error "Device $DISK_DEV cannot be found! Please add it to the 'devices' section of your compose file." && exit 55
local OPTS DISK_OPTS+=$(createDevice "$DISK_DEV" "$DISK_TYPE" "$DISK_INDEX" "$DISK_ADDRESS" "raw" "$DISK_IO" "$DISK_CACHE")
OPTS=$(createDevice "$DISK_DEV" "$DISK_TYPE" "$DISK_INDEX" "$DISK_ADDRESS" "raw" "$DISK_IO" "$DISK_CACHE")
DISK_OPTS+=" $OPTS"
return 0 return 0
} }
@ -557,8 +554,7 @@ case "${MEDIA_TYPE,,}" in
esac esac
if [ -f "$BOOT" ] && [ -s "$BOOT" ]; then if [ -f "$BOOT" ] && [ -s "$BOOT" ]; then
ADD_OPTS=$(addMedia "$BOOT" "$MEDIA_TYPE" "0" "$BOOT_INDEX" "0x5") DISK_OPTS+=$(addMedia "$BOOT" "$MEDIA_TYPE" "0" "$BOOT_INDEX" "0x5")
DISK_OPTS+=" $ADD_OPTS"
fi fi
DRIVERS="/drivers.iso" DRIVERS="/drivers.iso"
@ -570,8 +566,7 @@ if [ -f "$DRIVERS" ] && [ -s "$DRIVERS" ]; then
else else
DRIVER_TYPE="auto" DRIVER_TYPE="auto"
fi fi
ADD_OPTS=$(addMedia "$DRIVERS" "$DRIVER_TYPE" "1" "" "0x6") DISK_OPTS+=$(addMedia "$DRIVERS" "$DRIVER_TYPE" "1" "" "0x6")
DISK_OPTS+=" $ADD_OPTS"
fi fi
DISK1_FILE="$STORAGE/data" DISK1_FILE="$STORAGE/data"