[Click] jiffies and e1000 polling.
Eddie Kohler
kohler at cs.ucla.edu
Mon Aug 27 17:31:10 EDT 2007
Hi Jason,
Thanks for this problem report and patch! I think the right fix,
though, is to change the adapter variables to "unsigned long" (the type
of jiffies itself), and use Linux's time_before macro. This is checked
in to git.
Eddie
Jason Park (Joonwoo Park) wrote:
> Hi,
>
> Recently, jiffies of the linux runs from -5 min.
> So I think that polling patch needed to be fixed like this.
>
> Index: e1000_main.c
> ===================================================================
> --- e1000_main.c.orig
> +++ e1000_main.c
> @@ -5645,16 +5645,16 @@
> */
> if (got) {
> adapter->rx_state = E1000_RX_STATE_NORMAL;
> - adapter->rx_normal_jiffies = jiffies + HZ;
> + adapter->rx_normal_jiffies = jiffies - INITIAL_JIFFIES + HZ;
> } else {
> int rdfh;
> int rdft;
> switch (adapter->rx_state) {
> case E1000_RX_STATE_NORMAL:
> - if (jiffies < adapter->rx_normal_jiffies)
> + if (jiffies - INITIAL_JIFFIES < adapter->rx_normal_jiffies)
> break;
> adapter->rx_state = E1000_RX_STATE_QUIET;
> - adapter->rx_quiet_jiffies = jiffies + HZ;
> + adapter->rx_quiet_jiffies = jiffies - INITIAL_JIFFIES + HZ;
> adapter->prev_rdfh = E1000_READ_REG(&adapter->hw, RDH1);
> adapter->prev_rdft = E1000_READ_REG(&adapter->hw, RDT1);
> break;
> @@ -5666,10 +5666,10 @@
> adapter->prev_rdfh == adapter->prev_rdft) {
> adapter->prev_rdfh = rdfh;
> adapter->prev_rdft = rdft;
> - adapter->rx_quiet_jiffies = jiffies + HZ;
> + adapter->rx_quiet_jiffies = jiffies - INITIAL_JIFFIES + HZ;
> break;
> }
> - if (jiffies < adapter->rx_quiet_jiffies)
> + if (jiffies - INITIAL_JIFFIES < adapter->rx_quiet_jiffies)
> break;
> /* Fall into the lockup case */
> case E1000_RX_STATE_LOCKUP:
> @@ -5688,7 +5688,7 @@
> E1000_DESC_UNUSED(adapter->rx_ring));
> /* reset the lockup detection */
> adapter->rx_state = E1000_RX_STATE_NORMAL;
> - adapter->rx_normal_jiffies = jiffies + HZ;
> + adapter->rx_normal_jiffies = jiffies - INITIAL_JIFFIES + HZ;
> break;
> }
> }
>
> Jason Park (Joonwoo Park).
>
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
More information about the click
mailing list