lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sun, 09 Nov 2014 20:16:30 -0700
From:	Jens Axboe <>
To:	Paolo Bonzini <>,
CC:	Thomas Gleixner <>,
	Clark Williams <>
Subject: Re: [PATCH 0/2] blk-mq: switch from preempt_disable/enable to get/put_cpu

On 2014-11-07 15:03, Paolo Bonzini wrote:
> blk-mq is using preempt_disable/enable in order to ensure that the
> queue runners are placed on the right CPU.  This does not work with
> the RT patches, because __blk_mq_run_hw_queue takes a non-raw
> spinlock with the preemption-disabled region.  If there is contention
> on the lock, this violates the rules for preemption-disabled regions.
> While this could be fixed easily within the RT patches just by doing
> migrate_disable/enable (note: this was not tested :)), we can do
> better.  The first patch concentrates the preempt_disable/enable in
> a single place in blk_mq_run_hw_queue, and also avoids useless calls
> when the caller wants to start __blk_mq_run_hw_queue asynchronously.
> (There is already a call to __blk_mq_run_hw_queue that does not disable
> preemption in blk-flush.c; not coincidentially, it passes async=true).
> Once this is done, it is trivial to use get/put_cpu instead of
> preempt_disable/smp_processor_id/preempt_enable, which is what the
> second patch does.  The RT patches then can change this to use
> get_cpu_light.
> With these changes (and the additional switch to get_cpu_light),
> virtio-blk can be used again with RT kernels.

These both look good. I'll double check and run through some testing, 
then apply for 3.19 if it all passes.

Jens Axboe

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

Powered by blists - more mailing lists