SCSI Bus bandwidths are actually influenced by both the controller and the target device. For ex, an older disk drive that can only transfer in Fast 10 mode will set the bus bw to 20Mb/s, but a new disk on the same bus may make it go at 40Mb/s. The QL busses have been put to a higher value, but even then, they can accommodate the older drives. A better solution is to prohibit older drives on QL busses for grio. Challenges can only do Fast10, whereas Origins do Fast10 and Fast20. Clock Speed Fast10 Fast 20 (fast/wide) (UltraSCSI) Width _________________________________________________________________ Narrow (8) 10Mb/s 20Mb/s _________________________________________________________________ Wide (16) 20Mb/s 40Mb/s (observed 32) _________________________________________________________________ PCI32 observed 108Mb/s, theoretical 113Mb/s from 4 dead cycles per cache line transfer and clocked at 33Mhz) Xbow-hub traffic consists of: read req = 2 upackets read resp = 8up data + 1 up hdr peak read bw = 8/9 * 800 = 711Mb/s sustained read bw = 8/11 * 800 = 580Mb/s Memory bw is peak at 780Mb/s @195Mhz (672Mb/s scaled to 180Mhz) for stride1 (cache line) access. Worst case is 403Mb/s (R/W back to back) for DMA out of memory and 378Mb/s for DMA into memory. Modelling: (in table *.c) QL is being set to 13, 14, 15, 16 Mb/s for iosize steps. PCI32 is being set at 90Mb/s, PCI64 ir recognised as special case in ggd and set to 160 Mb/s XBOW is being set at 400Mb/s (each way, for 16 bit links) HUB(MEMORY) is being set to 300Mb/s (in hw_layer.c) For a requested reservation on a disk: Check whether the disk can provide the bw. Check whether the QL controller can provide the bw. Check whether the PCI bridge can provide the bw. Redundantly check that the xtalk link can provide the bw. (given that the xtalk link is ~350Mb/s, PCI is ~133Mb/s) Check whether the hub can provide the bw. (this should consider the traffic direction, ie to and fro the hub, which we do not do right now. But this is okay because we consider that all hub traffic is directed towards the attached memory, hence the hub values in the table* files refer to the memory link, which is the weaker of the two)