RE: [EXT] Re: [PATCH v6 04/15] octeontx2-af: Add mailbox support infra
flat view
From: Goutham, Sunil <hidden>
Date: 2018-10-06 12:03:58
-----Original Message----- From: David Miller <davem@davemloft.net> Sent: 06 October 2018 03:21 To: sunil.kovvuri@gmail.com Cc: netdev@vger.kernel.org; arnd@arndb.de; linux-soc@vger.kernel.org; sgoutham@marvell.com; amakarov@marvell.com; lbartosik@marvell.com Subject: [EXT] Re: [PATCH v6 04/15] octeontx2-af: Add mailbox support infra ---------------------------------------------------------------------- From: sunil.kovvuri@gmail.com Date: Thu, 4 Oct 2018 23:51:47 +0530quoted
+int otx2_mbox_init(struct otx2_mbox *mbox, void *hwbase, structpci_dev *pdev,quoted
+ void *reg_base, int direction, int ndevs) { + int devid; + struct otx2_mbox_dev *mdev;Please order local variable declarations from longest to shortest line. Please audit your entire series for this problem.
Sure, will fix this and re-submit.
quoted
+int otx2_mbox_busy_poll_for_rsp(struct otx2_mbox *mbox, int devid) { + struct otx2_mbox_dev *mdev = &mbox->dev[devid]; + unsigned long timeout = jiffies + 1 * HZ; + + while (!time_after(jiffies, timeout)) { + if (mdev->num_msgs == mdev->msgs_acked) + return 0; + cpu_relax(); + } + return -EIO; +}Probably not a good idea to poll something in the kernel for an entire second. Please add a preemption point like a usleep() or similar. cpu_relax() does not yield the cpu to the scheduler. Thank you.
APIs with both modes are added here i.e
otx2_mbox_wait_for_rsp() - which sleeps on every check as you suggested.
This API will be used 99% of the cases.
otx2_mbox_busy_poll_for_rsp() - This API is a busy poll one which is intended to be used in
cases where polling is not allowed. An example would be
' .ndo_set_rx_mode' when netdev driver has to change mode
It frames and sends mailbox message to this AF driver and busy polls
for response.
Thanks,
Sunil.