v4.12-pf7 is out

New pf-kernel release is available here.

Finally, MuQSS CPU scheduler is fixed and merged, replacing VRQ. Works okay as usual, and I think I should do some benchmarking a-la MuQSS vs VRQ, because perceptional difference is minimal.

This time I’ve decided not to merge the whole -ck patchset because it seems I had issues with timers changes presented by it leading to sound to crackle sometimes. MuQSS alone does not expose such a behavior. Thus, I do not see much reason to apply the whole -ck it in future, so lets assume I’ve decided to stick to scheduling part only.

Latest stable update, v4.12.8, is merged as well.

Enjoy.

v4.12-pf4 is out

Hola.

New pf-kernel release is here. It brings you CPU affinity fix for VRQ (many thanks to Alfred for quick response) as well as latest stable update, v4.12.4.

Unfortunately, I haven’t figured out yet what causes hangs on suspend/resume with blk-mq enabled. Still trying to reproduce it in a VM to get some logs and/or dumps. Otherwise, things look okay.

Stay tuned and enjoy.

Current v4.12-pf summary

v4.12 release has brought lots of interesting things, and -pf made those things even more interesting.

So far:

  • VRQ is horribly broken. Investigation is ongoing, reliable reproducer is provided, go and check current results here. Meanwhile, I’ve reverted VRQ from -pf tree, but still keeping an eye on it. Also, likely and hopefully, MuQSS might be available in a week or so. As of now, I’ve picked CFS tunables from zen-kernel to make mainline scheduler suck less. And indeed, it sucks less with those tunables.
  • UPDATE: MuQSS is broken too. Same reproducer is able to crash a kernel. Similar bugreport has been filed for Con here.
  • blk-mq looks like broken too somehow. There are 2 discussions regarding suspend/resume issues. First is here, and it looks like it should be fixed by this commit, which is already in -pf. Second is here, and I’d like to check what an outcome is. For me, both suspend and resume fail periodically, and I’ve disabled -mq to check if it helps. Maybe, I’ll have to merge BFQ for SQ back.
  • CONFIG_DM_MQ_DEFAULT=y is not needed for non-multipath hardware. CONFIG_SCSI_MQ_DEFAULT=y is sufficient to have -mq enabled on commodity hardware.
  • If you do not play with CPU affinity and suspend/resume — everything works like a charm :).

Will keep you updated once have some news on this.

v4.12-pf3 is out

Hello.

Another pf-kernel update is here.

It brings you compilation fix for UP systems, hopefully fixed suspend/resume with blk-mq enabled and a couple of experimental BFQ fixes.

Also I’ve discovered some VRQ issue leading to lockup. It is triggered by the_silver_searcher aka ag tool. Still have no idea what’s happening there, but VRQ author is notified, and the issue is under investigation.

Anyway, everyone must upgrade.

Enjoy.

v4.12-pf2 is out

I’m glad to announce next 4.12 branch update, featuring v4.12-pf2.

This release introduces new BFS VRQ version, v0.96d. Also, I’ve merged three fixes for BFQ. Finally, tp->retrans_out WARN_ON muting is back again. Of course, latest stable update, v4.12.2, is also here.

Please note I’m still trying to investigate issues with suspend to RAM. Currently, I cannot blame BFQ and UKSM as issue happens when those are disabled. It is either blk-mq framework or BFS, but I need more time to investigate it. Note that blk-mq framework will be disabled in Arch by default due to problems with suspending, so it might be a hit.

Leaving here udev rule for enabling BFQ by default, instead of systemd unit posted before.

$ cat /etc/udev/rules.d/10-bfq.rules
ACTION=="add|change", KERNEL=="sd[a-z]*", ATTR{queue/scheduler}="bfq"

Enjoy.

v4.12-pf1 is out

Hello, folks.

This should be another awesome release because:

  • BFQ is mainlined;
  • UKSM is back.

Since BFQ is in upstream already and works only with MQ, in order to use it you must enable MQ. You may do that via kernel command line by adding scsi_mod.use_blk_mq=1 option or by altering kernel config file and recompiling it with the following changes:

CONFIG_SCSI_MQ_DEFAULT=y
CONFIG_DM_MQ_DEFAULT=y

Otherwise, you won’t be able to select any MQ-aware I/O scheduler (deadline, Kyber, BFQ).

Also, note that you cannot set default MQ scheduler, so do something like this:

$ cat /etc/systemd/system/bfq@.service

[Unit]
Description=Set BFQ for %i

[Service]
Type=oneshot
ExecStart=-/usr/bin/bash -c 'echo bfq >/sys/block/%i/queue/scheduler'
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

And:

systemctl daemon-reload
systemctl enable bfq@sda
systemctl start bfq@sda

replacing sda by what you have there in your PC. Alternatively, you may brew your own udev rule.

This release also provides BFS with VRQ from Alfred Chen. Once MuQSS is out, I’ll merge full -ck patchset instead.

The only issue I’ve faced so far is that my laptop is unable to sleep sometimes. Please check if it is the same for you and try to disable UKSM first and then BFQ to find out the cause.

Enjoy.

v4.11-pf7 is out

New pf-kernel release is available here.

It brings latest stable update, v4.11.8, as well as latest BFQ fixes. So all users are encouraged to upgrade.

Likely, this is the last update for 4.11 kernel. Next release should be for 4.12 once all necessary patches are ready.