Hello Tal,
I looked through the documentation but some of the things were not cleared, so
I am looking for some fine details on this topic if you could help please -
Q1- In general, can this feature be problematic or not useful if device
only support time based moderation but does not support packets count based
moderation ?
IOW, does DIM strictly demands for devices to support both time based
and packets count based moderation ?
Q2- What is DIM mode actually (DIM_CQ_PERIOD_MODE_START_FROM_EQE and
DIM_CQ_PERIOD_MODE_START_FROM_CQE) ?
Document mentions that one of them is used for timer reset, but unsure
what exactly it is ? By looking at the code, it seems it just differs from
profile values.
How do I get to know that which one should be used or could be
benefitted in general by the drivers and in what circumstances ?
Q3- I started with using DIM_CQ_PERIOD_MODE_START_FROM_EQE with our drivers
(drivers/net/ethernet/qlogic/qede) and our device only supports
time based moderation but does not support packets based moderation,
our driver simply updating data-path interrupts as an event counts, rcv_bytes
and
rcv_pkts through the DIM api in NAPI poll routine, I was experiencing
some strange behaviors - (unsure if they are expected)
a. When simply running constant PING flood from peer (ping <ip> -f), I
was seeing that DIM causing the driver to change the
usec moderation values (1,8,..) quite frequently, it did not make
stable moderation configuration although it was steady PING flood,
same was observed with single TCP connection too (with TCP it
wasn't that frequent but it kept on changing over the time, still not stable
configuration on const TCP stream)
b. With TCP, I could see that DIM causing driver to use higher usec
values (compared to PING flood), but strangely when stopping TCP stream and
running PING
back, it did not reduce the moderation values back (I would have
expected that PING after TCP would reduce the moderation value)
# uname -r
5.5.0-rc2net-next
Regards,
Manish