When attempting to change the max_transfer
attribute on a VSCSI hdisk, the following error was displayed:
#
chdev -l hdisk0 -a max_transfer=0x100000 -P
Method
error (/etc/methods/chgdisk):
0514-018 The values specified for the following attributes
are not valid:
max_transfer
Maximum TRANSFER Size
The
desired value, 0x100000, was an allowed value for this type of device (as shown
in the lsattr output below):
#
lsattr -El hdisk0
PCM
PCM/friend/vscsi
Path Control Module False
algorithm
fail_over
Algorithm
True
hcheck_cmd
test_unit_rdy
Health Check Command True
hcheck_interval
60
Health Check Interval True
hcheck_mode
nonactive
Health Check Mode True
max_transfer
0x40000
Maximum TRANSFER Size True
pvid
00f6a83aeb1948950000000000000000 Physical volume identifier False
queue_depth
256
Queue
DEPTH
True
reserve_policy
no_reserve
Reserve
Policy
True
# lsattr -Rl hdisk0 -a max_transfer
0x20000
0x40000
0x80000
0x100000
0x200000
0x400000
0x800000
0x1000000
After
some discussion with IBM support, it was discovered that the virtual optical
device, assigned to this LPAR, was causing the problem. They advised that we should
perform the following steps:
1. Remove
the cd0 device from the LPAR i.e.
# rmdev –dl cd0
2. Remove
the vtopt0 device assigned to the LPAR on the VIOS i.e
$ rmvdev –vtd vtopt0
3. Shutdown
the LPAR.
4. Reboot
the VIOS.
5. Restart
the LPAR.
6. Change
the max_transfer value for the hdisk on the LPAR.
Sure
enough, after following these steps, we were able to change max_transfer to the desired value!
#
chdev -l hdisk0 -a max_transfer=0x100000
hdisk0 changed
#
lsattr -El hdisk0
PCM
PCM/friend/vscsi
Path Control Module False
algorithm
fail_over
Algorithm
True
hcheck_cmd
test_unit_rdy
Health Check Command True
hcheck_interval
0
Health Check Interval True
hcheck_mode
nonactive
Health Check Mode True
max_transfer
0x100000
Maximum TRANSFER Size True
pvid
00f6a83aeedf5ffb0000000000000000 Physical volume identifier False
queue_depth
3
Queue DEPTH
True
reserve_policy
no_reserve
Reserve
Policy
True
The
following explanation was given by IBM support:
“The virtual optical device seems
to use max_transfer size as 0x40000 (256 KB) internally, which is not allowed
to be modified. Virtual optical CD's max_transfer seems to limit vhost
adapter's max_transfer size. So if you want to increase max_transfer size for
virtual SCSI disks, you should separate them from virtual optical SCSI CD by
configuring those two groups under different vhost adapters”
Tags: 
rmdev
vtopt0
max_transfer
rmvdev
aix
vios
chdev
hdisk
cd0
virtual_optical
vio