Commit 04f6296c authored by Haren Myneni's avatar Haren Myneni Committed by Michael Ellerman

powerpc/vas: Do not use default credits for receive window

System checkstops if RxFIFO overruns with more requests than the
maximum possible number of CRBs allowed in FIFO at any time. So
max credits value (rxattr.wcreds_max) is set and is passed to
vas_rx_win_open() by the the driver.
Signed-off-by: default avatarHaren Myneni <haren@linux.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/1587017136.2275.1070.camel@hbabu-laptop
parent cf33e1e9
...@@ -772,7 +772,7 @@ static bool rx_win_args_valid(enum vas_cop_type cop, ...@@ -772,7 +772,7 @@ static bool rx_win_args_valid(enum vas_cop_type cop,
if (attr->rx_fifo_size > VAS_RX_FIFO_SIZE_MAX) if (attr->rx_fifo_size > VAS_RX_FIFO_SIZE_MAX)
return false; return false;
if (attr->wcreds_max > VAS_RX_WCREDS_MAX) if (!attr->wcreds_max)
return false; return false;
if (attr->nx_win) { if (attr->nx_win) {
...@@ -877,7 +877,7 @@ struct vas_window *vas_rx_win_open(int vasid, enum vas_cop_type cop, ...@@ -877,7 +877,7 @@ struct vas_window *vas_rx_win_open(int vasid, enum vas_cop_type cop,
rxwin->nx_win = rxattr->nx_win; rxwin->nx_win = rxattr->nx_win;
rxwin->user_win = rxattr->user_win; rxwin->user_win = rxattr->user_win;
rxwin->cop = cop; rxwin->cop = cop;
rxwin->wcreds_max = rxattr->wcreds_max ?: VAS_WCREDS_DEFAULT; rxwin->wcreds_max = rxattr->wcreds_max;
init_winctx_for_rxwin(rxwin, rxattr, &winctx); init_winctx_for_rxwin(rxwin, rxattr, &winctx);
init_winctx_regs(rxwin, &winctx); init_winctx_regs(rxwin, &winctx);
......
...@@ -101,11 +101,9 @@ ...@@ -101,11 +101,9 @@
/* /*
* Initial per-process credits. * Initial per-process credits.
* Max send window credits: 4K-1 (12-bits in VAS_TX_WCRED) * Max send window credits: 4K-1 (12-bits in VAS_TX_WCRED)
* Max receive window credits: 64K-1 (16 bits in VAS_LRX_WCRED)
* *
* TODO: Needs tuning for per-process credits * TODO: Needs tuning for per-process credits
*/ */
#define VAS_RX_WCREDS_MAX ((64 << 10) - 1)
#define VAS_TX_WCREDS_MAX ((4 << 10) - 1) #define VAS_TX_WCREDS_MAX ((4 << 10) - 1)
#define VAS_WCREDS_DEFAULT (1 << 10) #define VAS_WCREDS_DEFAULT (1 << 10)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment