From: Abhijit Gangurde <abhijit.gangurde@amd.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: shannon.nelson@amd.com, brett.creeley@amd.com,
davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, corbet@lwn.net, jgg@ziepe.ca,
andrew+netdev@lunn.ch, allen.hubbe@amd.com,
nikhil.agarwal@amd.com, linux-rdma@vger.kernel.org,
netdev@vger.kernel.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, Andrew Boyer <andrew.boyer@amd.com>
Subject: Re: [PATCH v3 09/14] RDMA/ionic: Create device queues to support admin operations
Date: Fri, 4 Jul 2025 16:15:35 +0530 [thread overview]
Message-ID: <3e119daf-ff7c-d509-4409-9551ce3403fa@amd.com> (raw)
In-Reply-To: <20250703084102.GN6278@unreal>
On 7/3/25 14:11, Leon Romanovsky wrote:
> On Thu, Jul 03, 2025 at 12:29:45PM +0530, Abhijit Gangurde wrote:
>> On 7/1/25 15:54, Leon Romanovsky wrote:
>>> On Tue, Jun 24, 2025 at 05:43:10PM +0530, Abhijit Gangurde wrote:
>>>> Setup RDMA admin queues using device command exposed over
>>>> auxiliary device and manage these queues using ida.
>>>>
>>>> Co-developed-by: Andrew Boyer <andrew.boyer@amd.com>
>>>> Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>
>>>> Co-developed-by: Allen Hubbe <allen.hubbe@amd.com>
>>>> Signed-off-by: Allen Hubbe <allen.hubbe@amd.com>
>>>> Signed-off-by: Abhijit Gangurde <abhijit.gangurde@amd.com>
>>>> ---
>>>> v2->v3
>>>> - Fixed lockdep warning
>>>> - Used IDA for resource id allocation
>>>> - Removed rw locks around xarrays
> <...>
>
>>>> + list_for_each_entry_safe(wr, wr_next, &aq->wr_prod, aq_ent) {
>>>> + INIT_LIST_HEAD(&wr->aq_ent);
>>>> + aq->q_wr[wr->status].wr = NULL;
>>>> + wr->status = aq->admin_state;
>>>> + complete_all(&wr->work);
>>>> + }
>>>> + INIT_LIST_HEAD(&aq->wr_prod);
>>> <...>
>>>
>>>> + if (do_reset)
>>>> + /* Reset device on a timeout */
>>>> + ionic_admin_timedout(bad_aq);
>>> I wonder why RDMA driver resets device and not the one who owns PCI.
>> RDMA driver is requesting the reset via eth driver which holds the
>> privilege.
> I wonder if the one who owns CMD interface should decide and reset device
> and not the clients.
To be precise, this operation resets the RDMA logical interface built on
top of the base device, and does not affect the PCI device or the
Ethernet driver's interface. Apologies for the lack of clarity in the
previous
comment. I will update the comment to reflect this accurately in the next
version.
> <...>
>
>>>> + old_state = atomic_cmpxchg(&dev->admin_state, IONIC_ADMIN_ACTIVE,
>>>> + IONIC_ADMIN_PAUSED);
>>>> + if (old_state != IONIC_ADMIN_ACTIVE)
>>> In all these places you are mixing enum_admin_state and atomic_t for
>>> same values, but different variable. Please chose or atomic_t or enum.
>> admin_state within the admin queues is protected by the spinlock,
>> hence it is used as enum_admin_state. However device's admin_state
>> is used as as atomic to avoid reset race of reset.
> The issue is in mixing types.
I will correct this.
>
> <...>
>
>>>> +
>>>> + if (!cq) {
>>> Is it possible?
>> Possible when HCA goes bad.
> Do you have errata for that? Generally speaking, kernel is not written
> to be protected from broken HW. The overall assumption is that HW works
> correctly.
>
> Thanks
There is no known hw issue around this. This was added just as a
precautionary
check so that wrong cqid does not result in kernel panic. I can remove
this check if
this is unwarranted.
Thanks,
Abhijit
next prev parent reply other threads:[~2025-07-04 10:45 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-24 12:13 [PATCH v3 00/14] Introduce AMD Pensando RDMA driver Abhijit Gangurde
2025-06-24 12:13 ` [PATCH v3 01/14] net: ionic: Create an auxiliary device for rdma driver Abhijit Gangurde
2025-06-24 12:13 ` [PATCH v3 02/14] net: ionic: Update LIF identity with additional RDMA capabilities Abhijit Gangurde
2025-06-24 12:13 ` [PATCH v3 03/14] net: ionic: Export the APIs from net driver to support device commands Abhijit Gangurde
2025-06-24 12:13 ` [PATCH v3 04/14] net: ionic: Provide RDMA reset support for the RDMA driver Abhijit Gangurde
2025-06-24 12:13 ` [PATCH v3 05/14] net: ionic: Provide interrupt allocation " Abhijit Gangurde
2025-06-24 12:13 ` [PATCH v3 06/14] net: ionic: Provide doorbell and CMB region information Abhijit Gangurde
2025-06-24 12:13 ` [PATCH v3 07/14] RDMA: Add IONIC to rdma_driver_id definition Abhijit Gangurde
2025-06-24 12:13 ` [PATCH v3 08/14] RDMA/ionic: Register auxiliary module for ionic ethernet adapter Abhijit Gangurde
2025-06-26 7:26 ` Leon Romanovsky
2025-06-27 10:18 ` Abhijit Gangurde
2025-06-24 12:13 ` [PATCH v3 09/14] RDMA/ionic: Create device queues to support admin operations Abhijit Gangurde
2025-07-01 10:24 ` Leon Romanovsky
2025-07-03 6:59 ` Abhijit Gangurde
2025-07-03 8:41 ` Leon Romanovsky
2025-07-04 10:45 ` Abhijit Gangurde [this message]
2025-06-24 12:13 ` [PATCH v3 10/14] RDMA/ionic: Register device ops for control path Abhijit Gangurde
2025-07-01 10:38 ` Leon Romanovsky
2025-07-02 13:18 ` Jason Gunthorpe
2025-07-02 18:00 ` Leon Romanovsky
2025-07-03 7:19 ` Abhijit Gangurde
2025-07-04 17:08 ` Leon Romanovsky
2025-07-07 5:27 ` Abhijit Gangurde
2025-07-07 7:21 ` Leon Romanovsky
2025-07-07 14:56 ` Abhijit Gangurde
2025-07-07 16:46 ` Leon Romanovsky
2025-07-08 10:05 ` Abhijit Gangurde
2025-07-13 6:27 ` Leon Romanovsky
2025-07-15 19:16 ` Jason Gunthorpe
2025-07-20 8:39 ` Abhijit Gangurde
2025-07-03 7:00 ` Abhijit Gangurde
2025-06-24 12:13 ` [PATCH v3 11/14] RDMA/ionic: Register device ops for datapath Abhijit Gangurde
2025-06-24 12:13 ` [PATCH v3 12/14] RDMA/ionic: Register device ops for miscellaneous functionality Abhijit Gangurde
2025-06-24 12:13 ` [PATCH v3 13/14] RDMA/ionic: Implement device stats ops Abhijit Gangurde
2025-06-24 12:13 ` [PATCH v3 14/14] RDMA/ionic: Add Makefile/Kconfig to kernel build environment Abhijit Gangurde
2025-06-25 21:44 ` [PATCH v3 00/14] Introduce AMD Pensando RDMA driver Jakub Kicinski
2025-06-26 7:07 ` Leon Romanovsky
2025-06-27 10:06 ` Abhijit Gangurde
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=3e119daf-ff7c-d509-4409-9551ce3403fa@amd.com \
--to=abhijit.gangurde@amd.com \
--cc=allen.hubbe@amd.com \
--cc=andrew+netdev@lunn.ch \
--cc=andrew.boyer@amd.com \
--cc=brett.creeley@amd.com \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=jgg@ziepe.ca \
--cc=kuba@kernel.org \
--cc=leon@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=nikhil.agarwal@amd.com \
--cc=pabeni@redhat.com \
--cc=shannon.nelson@amd.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