From: Christoph Hellwig <email@example.com> To: Daniel Wagner <firstname.lastname@example.org> Cc: Sagi Grimberg <email@example.com>, Johannes Thumshirn <firstname.lastname@example.org>, email@example.com, firstname.lastname@example.org, Christoph Hellwig <email@example.com> Subject: Re: [RFC] nvmet: Always remove processed AER elements from list Date: Thu, 31 Oct 2019 15:51:27 +0100 [thread overview] Message-ID: <20191031145127.GC6024@lst.de> (raw) In-Reply-To: <firstname.lastname@example.org> On Wed, Oct 30, 2019 at 04:24:18PM +0100, Daniel Wagner wrote: > All async events are enqueued via nvmet_add_async_event() which > updates the ctrl->async_event_cmds array and additionally an struct > nvmet_async_event is added to the ctrl->async_events list. > > Under normal operations the nvmet_async_event_work() updates again the > ctrl->async_event_cmds and removes the corresponding struct > nvmet_async_event from the list again. Though nvmet_sq_destroy() could > be called which calles nvmet_async_events_free() which only updates > the ctrl->async_event_cmds array. > > Add a new function nvmet_async_events_process() which processes the > async events and updates both array and the list. With this we avoid > having two places where the array and list are modified. I don't think this patch is correct. We can have AEN commands pending that aren't used - that is the host sent the command, but the target did not have even event yet. That means the command sits in async_event_cmds, but there is no entry in >async_events for it yet. That being said I think what we want is to do the loop in your new nvmet_async_events_free first, but after that still call the loop in the existing nvmet_async_events_free after that. That ensures we first flush out everything in ->async_events, and then also return any potential remaining entry. _______________________________________________ Linux-nvme mailing list Linuxemail@example.com http://lists.infradead.org/mailman/listinfo/linux-nvme
next prev parent reply other threads:[~2019-10-31 14:51 UTC|newest] Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-10-30 15:24 Daniel Wagner 2019-10-30 19:58 ` Chaitanya Kulkarni 2019-10-31 7:06 ` Johannes Thumshirn 2019-10-31 14:51 ` Christoph Hellwig [this message] 2019-11-03 18:55 ` Chaitanya Kulkarni 2019-11-03 19:48 ` Chaitanya Kulkarni 2019-11-03 20:14 ` Chaitanya Kulkarni
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=20191031145127.GC6024@lst.de \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --subject='Re: [RFC] nvmet: Always remove processed AER elements from list' \ /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
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).