From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Christoph Hellwig <hch@infradead.org>
Cc: linux-scsi@vger.kernel.org,
"James E.J. Bottomley" <jejb@linux.vnet.ibm.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
rt@linutronix.de, Vasu Dev <vasu.dev@intel.com>,
fcoe-devel@open-fcoe.org
Subject: Re: [PATCH 01/11] scsi/fcoe: lock online CPUs in fcoe_percpu_clean()
Date: Fri, 8 Apr 2016 20:14:50 +0200 [thread overview]
Message-ID: <5707F51A.8010700@linutronix.de> (raw)
In-Reply-To: <5707B270.3080006@linutronix.de>
On 04/08/2016 03:30 PM, Sebastian Andrzej Siewior wrote:
> On 03/15/2016 09:19 AM, Christoph Hellwig wrote:
>> On Fri, Mar 11, 2016 at 05:32:15PM +0100, Sebastian Andrzej Siewior wrote:
>>> alloc_workqueue() in setup and then queue_work_on(cpu, , item)? item
>>> should be struct work_struct but all I have is a skb. Is there an easy
>>> way to get this attached?
>>
>> Good question. There is skb->cb, but it looks like it doesn't have
>> space for an additional work_item in the fcoe case. Maybe have
>> a per-cpu work_struct and keep all the list handling as-is for now?
>
> Okay. Let me try this. What about the few fixes from the series (which
> apply before the rework to smbboot theads)?
okay kworker. This does not look good. I have it converted what I miss
flushing work when CPU goes down and ensuring not to queue work while
the CPU is down.
- cpu_online(x) is racy. In DOWN_PREPARE the worker is deactivated /
stopped. However slightly later the bit from the CPU mask is removed.
- Whatever is queued and did not make it before the CPU went down seems
to be delayed until the CPU comes back online.
- if the worker keeps running while the CPU is going down the worker
continues running on a different CPU.
So I don't see how the former two points can be solved without keeping
track of CPUs in a CPU notifier. Getting pushed to a different CPU be
probably less of an issue if we would have a work-item and would not
need to rely on the per-CPU list.
Sebastian
next prev parent reply other threads:[~2016-04-08 18:15 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-11 15:28 [PATCH 00/11] SCSI smpboot thread conversion Sebastian Andrzej Siewior
2016-03-11 15:28 ` [PATCH 01/11] scsi/fcoe: lock online CPUs in fcoe_percpu_clean() Sebastian Andrzej Siewior
2016-03-11 16:17 ` Christoph Hellwig
2016-03-11 16:32 ` Sebastian Andrzej Siewior
2016-03-15 8:19 ` Christoph Hellwig
2016-04-08 13:30 ` Sebastian Andrzej Siewior
2016-04-08 18:14 ` Sebastian Andrzej Siewior [this message]
2016-04-12 15:16 ` [PATCH v2] scsi/fcoe: convert to kworker Sebastian Andrzej Siewior
2016-04-22 15:27 ` [PREEMPT-RT] " Sebastian Andrzej Siewior
2016-04-22 15:49 ` James Bottomley
2016-04-22 16:39 ` Laurence Oberman
[not found] ` <186981952.31194082.1461343179889.JavaMail.zimbra-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-06-09 13:09 ` Sebastian Andrzej Siewior
2016-06-09 13:15 ` Laurence Oberman
2016-06-09 13:22 ` Sebastian Andrzej Siewior
2016-06-10 10:38 ` Johannes Thumshirn
[not found] ` <20160610103812.ojgzop6qdv3mos5d-3LAbnSA0sDC4fIQPS+WK3rNAH6kLmebB@public.gmane.org>
2016-07-01 19:09 ` Bynoe, Ronald J
2016-07-04 8:23 ` Sebastian Andrzej Siewior
2016-03-11 15:28 ` [PATCH 02/11] scsi/fcoe: remove CONFIG_SMP in fcoe_percpu_thread_destroy() Sebastian Andrzej Siewior
2016-03-11 15:28 ` [PATCH 03/11] scsi/fcoe: drop locking in fcoe_percpu_thread_destroy() if cpu == targ_cpu Sebastian Andrzej Siewior
2016-03-11 15:28 ` [PATCH 04/11] scsi/fcoe: rename p0 to p_target in fcoe_percpu_thread_destroy() Sebastian Andrzej Siewior
2016-03-11 15:28 ` [PATCH 05/11] scsi/fcoe: drop the p_target lock earlier if there is no thread online Sebastian Andrzej Siewior
2016-03-11 15:28 ` [PATCH 06/11] scsi/fcoe: use skb_queue_splice_tail() intead of manual job Sebastian Andrzej Siewior
2016-03-11 15:28 ` [PATCH 07/11] scsi/fcoe: drop the crc_eof page early Sebastian Andrzej Siewior
2016-03-11 15:29 ` [PATCH 08/11] scsi/fcoe: convert to smpboot thread Sebastian Andrzej Siewior
2016-03-11 15:29 ` [PATCH 09/11] scsi: bnx2i: " Sebastian Andrzej Siewior
2016-03-11 15:29 ` [PATCH 10/11] scsi: bnx2fc: fix hotplug race in bnx2fc_process_new_cqes() Sebastian Andrzej Siewior
2016-03-11 15:29 ` [PATCH 11/11] scsi: bnx2fc: convert to smpboot thread Sebastian Andrzej Siewior
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5707F51A.8010700@linutronix.de \
--to=bigeasy@linutronix.de \
--cc=fcoe-devel@open-fcoe.org \
--cc=hch@infradead.org \
--cc=jejb@linux.vnet.ibm.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=rt@linutronix.de \
--cc=vasu.dev@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).