From: "Dai WeiBin \(David Dai\)" <david.dai@montage-tech.com>
To: "'Dan Williams'" <dan.j.williams@intel.com>
Cc: "'Ben Widawsky'" <ben.widawsky@intel.com>,
<linux-cxl@vger.kernel.org>,
"'Jin LiZhi \(Lynn Jin\)'" <lynn.jin@montage-tech.com>
Subject: RE: CXL mailbox background command
Date: Fri, 30 Apr 2021 09:42:49 +0800 [thread overview]
Message-ID: <00f601d73d62$20de06f0$629a14d0$@montage-tech.com> (raw)
In-Reply-To: <CAPcyv4gTyj=PAEUdKdMUyLz1hP8Wg+HyabkO11kJ9C0Vx2wkQw@mail.gmail.com>
Thanks, Dan, your direction is important for us, this will help our software/hardware design.
David
-----Original Message-----
From: Dan Williams (dan.j.williams@intel.com) [mailto:dan.j.williams@intel.com]
Sent: 2021年4月30日 4:32
To: Dai WeiBin (David Dai)
Cc: Ben Widawsky; linux-cxl@vger.kernel.org; Jin LiZhi (Lynn Jin)
Subject: Re: CXL mailbox background command
CAUTION: This email
originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
On Wed, Apr 28, 2021 at 9:30 PM Dai WeiBin (David Dai)
<david.dai@montage-tech.com> wrote:
>
> Hi Ben,
>
> When we think of cxl mailbox background command, we met a difficult issue, how to handle switching between a background command end and another background command start?
>
> The flow is as below:
> 1. Host/caller sends a command to cxl device.
> 2. CXL device identifies the command as a background command, then cxl device returns background command started, background Operation is set to 1.
> 3. CXL device start to handle background command.
> 4. Host/caller can send other commands to cxl device when background command is ongoing on device side.
> 5. At a special point host/caller is sending a command to device when the background command just is finished, the new command will be handled as a background command by device.
> 6. That means the old background command ends, background Operation is set to 0, immediately the new background command is started, background Operation is set to 1 again at once.
> 7. So Host driver doesn’t have a chance to check the old background command has been finished, it still see “background Operation == 1”.
> 8. Mailbox Status Register and Background Command Status Register are both read-only, that results there is not a handshake between host and device.
> 9.How to guarantee exclusion between two background commands.
>
> Do you have any suggestion about this?
Background commands are not suitable to be exposed directly to
userspace, they can lockout critical driver access. They need to be
mediated by the kernel, so they each need a kernel managed state
machine and those state machines need to cooperate with each other.
Userspace can not be trusted to get this right on its own, so
userspace should be disallowed from issuing such commands by default.
Luckily Linux distributions can get this safety policy with minimal
effort by leaving CONFIG_CXL_MEM_RAW_COMMANDS default disabled.
next prev parent reply other threads:[~2021-04-30 1:46 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-29 4:26 CXL mailbox background command Dai WeiBin (David Dai)
2021-04-29 9:18 ` Jonathan Cameron
2021-04-30 1:18 ` Dai WeiBin (David Dai)
2021-04-29 20:32 ` Dan Williams
2021-04-30 1:42 ` Dai WeiBin (David Dai) [this message]
-- strict thread matches above, loose matches on Subject: below --
2021-04-29 1:24 Dai WeiBin (David Dai)
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='00f601d73d62$20de06f0$629a14d0$@montage-tech.com' \
--to=david.dai@montage-tech.com \
--cc=ben.widawsky@intel.com \
--cc=dan.j.williams@intel.com \
--cc=linux-cxl@vger.kernel.org \
--cc=lynn.jin@montage-tech.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