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:   Wed, 18 Jan 2017 17:24:46 +0100
From:   Hannes Reinecke <hare@...e.de>
To:     "Dupuis, Chad" <chad.dupuis@...ium.com>, martin.petersen@...cle.com
Cc:     fcoe-devel@...n-fcoe.org, netdev@...r.kernel.org,
        QLogic-Storage-Upstream@...ium.com, linux-scsi@...r.kernel.org,
        yuval.mintz@...ium.com
Subject: Re: [Open-FCoE] [PATCH 2/2] qedf: Add QLogic FastLinQ offload FCoE
 driver framework.

On 01/16/2017 08:53 PM, Dupuis, Chad wrote:
> From: "Dupuis, Chad" <chad.dupuis@...ium.com>
> 
> The QLogic FastLinQ Driver for FCoE (qedf) is the FCoE specific module for 41000
> Series Converged Network Adapters by QLogic. This patch consists of following
> changes:
> 
> - MAINTAINERS Makefile and Kconfig changes for qedf
> - PCI driver registration
> - libfc/fcoe host level initialization
> - SCSI host template initialization and callbacks
> - Debugfs and log level infrastructure
> - Link handling
> - Firmware interface structures
> - QED core module initialization
> - Light L2 interface callbacks
> - I/O request initialization
> - Firmware I/O completion handling
> - Firmware ELS request/response handling
> - FIP request/response handled by the driver itself
> 
> Signed-off-by: Nilesh Javali <nilesh.javali@...ium.com>
> Signed-off-by: Manish Rangankar <manish.rangankar@...ium.com>
> Signed-off-by: Saurav Kashyap <saurav.kashyap@...ium.com>
> Signed-off-by: Arun Easi <arun.easi@...ium.com>
> Signed-off-by: Chad Dupuis <chad.dupuis@...ium.com>

[ .. ]

> +/* Main thread to process skb's from light-L2 interface */
> +static int qedf_ll2_recv_thread(void *arg)
> +{
> +	struct qedf_ctx *qedf = (struct qedf_ctx *)arg;
> +	struct qedf_skb_work *work, *work_tmp;
> +	unsigned long flags;
> +
> +	set_user_nice(current, -20);
> +	set_current_state(TASK_INTERRUPTIBLE);
> +
> +	while (!kthread_should_stop()) {
> +		schedule();
> +		if (!list_empty(&qedf->ll2_skb_list)) {
> +			list_for_each_entry_safe(work, work_tmp,
> +			    &qedf->ll2_skb_list, list) {
> +			spin_lock_irqsave(&qedf->ll2_lock, flags);
> +				list_del(&work->list);
> +				spin_unlock_irqrestore(&qedf->ll2_lock, flags);
> +				qedf_ll2_process_skb(qedf, work->skb);
> +				kfree(work);
> +			}
> +		}
> +		__set_current_state(TASK_INTERRUPTIBLE);
> +	}
> +
> +	__set_current_state(TASK_RUNNING);
> +	return 0;
> +}
> +
Please: don't.

The RT folks are trying to get rid of kthreads altogether as it's a
nightmare to get it to work with cpu hotplugging.
Please convert to workqueues.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		   Teamlead Storage & Networking
hare@...e.de			               +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ