Buffer level makes almost no sense.
All that matters is/are:
1. how soon after the device deadline (typically marked by an interrupt) until a kernel thread wakes up to deal with the device? (you have no control over this)
2. what is the additional delay until a user-space application thread wakes up to deal with the required data flow? (you have very little control over this, assuming you've done the obvious and used the correct thread scheduling class and priority)
3. does user space code read & write data before the next device deadline? (you have a lot of control over this)
As noted above, cyclictest is the canonical tool for testing the kernel side of this sort of thing.