In the source code (sys/sys/bio.h), bio_bcount is documented as "Valid bytes in buffer". bio_length is documented as "Like bio_bcount". Unfortunately, they are not the same. Here's a sh(1) script to show that: # Create a memory device. md=$(mdconfig -s 1G) # Trace the io subsystem when the dd command is executing. Limit the results to # the PID of the dd command only. dtrace -n ' io:::start /pid == $target/ { @bcount[execname] = quantize(args[0]->bio_bcount); @length[execname] = quantize(args[0]->bio_length); } ' -c "dd if=/dev/random of=/dev/$md bs=1m count=230 oflag=sync" # Remove the memory device. mdconfig -d -u "$md"