I'm not sure if you're asking what size an application can hand to the O/S or what size the O/S can hand to the driver or what size the driver can hand to the device. Then there's the question of network or disk. I know I've done disk I/O with record sizes in the 10s of MB, which are ultimately handed off to the disks in blocks that the disk is willing to accept. This sounds the the 128 you're referring to, but I'm not sure that's an O/S limit as opposed to the driver. As for networks, if you're doing ethernet you're limited to the packet size which is about 1500 bytes or 9K if you're doing jumbo frames. On the other hand if you're doing InfiniBand, I've seen record sizes of 1M but that may have also gone up with higher speeds.
On easy way to see the disk I/O sizes is with a tool like iostat or collectl and there are probably others. Here's an example of what collectl shows when I write a 1G file using my favorite load generator, Robin Miller's dt tool, which you can find at
http://home.comcast.net/~SCSIguy/SCS..._Tools/dt.html. The command I'm using is:
./dt of=/tmp/test limit=1g bs=1m
The I watch what the disk is doing with my own collectl tool (it can also a whole slew of other devices as well), which you can get at:
http://collectl.sourceforge.net/. In this case I'm using:
[root@poker ~]# collectl -sd --iosize -oT
waiting for 1 second sample...
# <---------------Disks---------------->
#Time KBRead Reads Size KBWrit Writes Size
08:06:35 8 2 4 12348 139 89
08:06:36 12 3 4 37480 148 253
08:06:37 8 2 4 38402 125 308
08:06:38 0 0 0 38768 133 291
08:06:39 0 0 0 51712 104 497
08:06:40 0 0 0 50688 107 474
and since my write I/O size is close to 500 I'm betting on this system I can do 512KB requests. This is a CentOS 5.3.
Does this help?
-mark