lists.openwall.net   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  linux-cve-announce  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:	Mon, 25 Mar 2013 08:25:58 +0100
From:	Bart Van Assche <bvanassche@....org>
To:	Wanlong Gao <gaowanlong@...fujitsu.com>
CC:	linux-kernel@...r.kernel.org, kvm@...r.kernel.org,
	linux-scsi@...r.kernel.org,
	virtualization@...ts.linux-foundation.org, rusty@...tcorp.com.au,
	mst@...hat.com, asias@...hat.com, JBottomley@...allels.com,
	venkateshs@...gle.com, pbonzini@...hat.com
Subject: Re: [PATCH V7 4/5] virtio-scsi: introduce multiqueue support

On 03/23/13 12:28, Wanlong Gao wrote:
> +static struct virtio_scsi_vq *virtscsi_pick_vq(struct virtio_scsi *vscsi,
> +					       struct virtio_scsi_target_state *tgt)
> +{
> +	struct virtio_scsi_vq *vq;
> +	unsigned long flags;
> +	u32 queue_num;
> +
> +	spin_lock_irqsave(&tgt->tgt_lock, flags);
> +
> +	/*
> +	 * The memory barrier after atomic_inc_return matches
> +	 * the smp_read_barrier_depends() in virtscsi_req_done.
> +	 */
> +	if (atomic_inc_return(&tgt->reqs) > 1)
> +		vq = ACCESS_ONCE(tgt->req_vq);
> +	else {
> +		queue_num = smp_processor_id();
> +		while (unlikely(queue_num >= vscsi->num_queues))
> +			queue_num -= vscsi->num_queues;
> +
> +		tgt->req_vq = vq = &vscsi->req_vqs[queue_num];
> +	}
> +
> +	spin_unlock_irqrestore(&tgt->tgt_lock, flags);
> +	return vq;
> +}

Is there any reason why the smp_processor_id() % vscsi->num_queues 
computation in virtscsi_pick_vq() has been implemented as a loop instead 
of as an arithmetic operation ? If so, I would appreciate it if that 
could be explained in a comment.

Thanks,

Bart.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ