smlbstcbr wrote:... PCI latency timer seems to have had a significant impact in the responsiveness of the whole system.
dis crazy... Ideally it'd be nice to have a web interface for setpci controlled by pretty sliders for each pci slot and with css shadows.where xx:yy.z are the first numbers listed by lspci, and n is a hex value between 0 and ff (setpci will round down ff, which is actually 255, to the required 248).
Code: Select all
setpci -v -s 06:05.0 latency_timer=ffI've at least heard of the deadline scheduler, though I use the default CFQ. I've also read of RCU, but I thought that was just plain baked-in as a feature to be used by other subsystems, especially handy for multiprocessor.smlbstcbr wrote:Really?! I had noticed a significant improvement by using the RCU option in 3.7.10 with the deadline scheduler.
https://www.kernel.org/doc/Documentation/RCU/rcu.txtdepontius wrote:I've at least heard of the deadline scheduler, though I use the default CFQ. I've also read of RCU, but I thought that was just plain baked-in as a feature to be used by other subsystems, especially handy for multiprocessor.smlbstcbr wrote:Really?! I had noticed a significant improvement by using the RCU option in 3.7.10 with the deadline scheduler.
What is "the RCU option"?

please post the CONFIG_...smlbstcbr wrote:https://www.kernel.org/doc/Documentation/RCU/rcu.txtdepontius wrote:I've at least heard of the deadline scheduler, though I use the default CFQ. I've also read of RCU, but I thought that was just plain baked-in as a feature to be used by other subsystems, especially handy for multiprocessor.smlbstcbr wrote:Really?! I had noticed a significant improvement by using the RCU option in 3.7.10 with the deadline scheduler.
What is "the RCU option"?
Code: Select all
# RCU Subsystem
#
CONFIG_TINY_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_RCU_BOOST=y
CONFIG_RCU_BOOST_PRIO=1
CONFIG_RCU_BOOST_DELAY=500
thanks !smlbstcbr wrote:Here it isCode: Select all
# RCU Subsystem # CONFIG_TINY_PREEMPT_RCU=y CONFIG_PREEMPT_RCU=y # CONFIG_TREE_RCU_TRACE is not set CONFIG_RCU_BOOST=y CONFIG_RCU_BOOST_PRIO=1 CONFIG_RCU_BOOST_DELAY=500
unfortunately not an option with ZFS (?)Mr.EVIL wrote:it was fixable long time ago with "realtime" patches...
Just a side-note... The CONFIG_PREEMPT_RCU option doesn't even show unless you're building a preemptible kernel. I normally build with "voluntary preemption," but this weekend when building 3.8.4 I went the pre-emptible route, and ticked CONFIG_PREEMPT_RCU=y. I don't think I ticked CONFIG_TINY_PREEMPT_RCU - I really need to go back and read if I should have used it for a mere dual-core CPU.smlbstcbr wrote:Here it isCode: Select all
# RCU Subsystem # CONFIG_TINY_PREEMPT_RCU=y CONFIG_PREEMPT_RCU=y # CONFIG_TREE_RCU_TRACE is not set CONFIG_RCU_BOOST=y CONFIG_RCU_BOOST_PRIO=1 CONFIG_RCU_BOOST_DELAY=500

now giving the pci latency timer approach a try:smlbstcbr wrote:The PCI timer is set in the BIOS setup options (each BIOS has a different setup, though should be very similar).
For INT to HEX: http://www.statman.info/conversions/hexadecimal.html

from what I saw there are already at least 2 issues on github referring to kernelsryao wrote:Why is that? If there is an incompatibility, I would like a bug report.kernelOfTruth wrote:unfortunately not an option with ZFS (?)Mr.EVIL wrote:it was fixable long time ago with "realtime" patches...
do you use virtualbox ? does that work for you with the rt-kernel ?
I had missed this when looking through the bug tracker. Thanks for bringing it to my attention. I will see what I can do to fix the build failure.kernelOfTruth wrote:from what I saw there are already at least 2 issues on github referring to kernels
one of them being: https://github.com/zfsonlinux/spl/issues/218
Code: Select all
*/usr/src/linux/kernel/events/uprobes.c:1143: undefined reference to `percpu_down_read'
*kernel/built-in.o: In function `uprobe_end_dup_mmap':
*/usr/src/linux/kernel/events/uprobes.c:1148: undefined reference to `percpu_up_read'
*kernel/built-in.o: In function `init_uprobes':
*/usr/src/linux/kernel/events/uprobes.c:1617: undefined reference to `__percpu_init_rwsem'
I'll have a look at it & see whether I get it to build reliably within the next daysryao wrote:I tried building a 3.8.4 realtime kernel and was promptly greeted by a build failure for the kernel source tree itself:
I cannot produce a fix for ZFS unless I have a fix for this and I do not have time to fix issues in other people's kernel code right now. :/Code: Select all
*/usr/src/linux/kernel/events/uprobes.c:1143: undefined reference to `percpu_down_read' *kernel/built-in.o: In function `uprobe_end_dup_mmap': */usr/src/linux/kernel/events/uprobes.c:1148: undefined reference to `percpu_up_read' *kernel/built-in.o: In function `init_uprobes': */usr/src/linux/kernel/events/uprobes.c:1617: undefined reference to `__percpu_init_rwsem'
Code: Select all
schedtool -p 0 -n -20 -N `pgrep X`
schedtool -p 0 -n -20 -N `pgrep pulseaudio`

Code: Select all
zcat /proc/config.gz | grep RCU
# RCU Subsystem
CONFIG_TREE_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y
CONFIG_RCU_STALL_COMMON=y
CONFIG_RCU_USER_QS=y
CONFIG_RCU_FANOUT=32
CONFIG_RCU_FANOUT_LEAF=2
# CONFIG_RCU_FANOUT_EXACT is not set
CONFIG_RCU_FAST_NO_HZ=y
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_RCU_BOOST=y
CONFIG_RCU_BOOST_PRIO=99
CONFIG_RCU_BOOST_DELAY=331
CONFIG_RCU_NOCB_CPU=y
CONFIG_RCU_NOCB_CPU_ALL=y
# RCU Debugging
# CONFIG_PROVE_RCU_DELAY is not set
# CONFIG_SPARSE_RCU_POINTER is not set
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=32
CONFIG_RCU_CPU_STALL_VERBOSE=y
CONFIG_RCU_CPU_STALL_INFO=y
# CONFIG_RCU_TRACE is not set
Yes, for me using mc too. I suspect caching. Why the hell we need normal caching?yoshi314 wrote:So far the only major issue i have is when copying big files (1.5-2GB) to usb. probably due to memory pressure or something, everything slows down