On 06/13/2013 04:13 AM, Eliezer Tamir wrote: > On 13/06/2013 05:01, Stephen Hemminger wrote: >> On Wed, 12 Jun 2013 15:12:05 -0700 (PDT) >> David Miller <da...@davemloft.net> wrote: >> >>> From: Eliezer Tamir <eliezer.ta...@linux.intel.com> >>> Date: Tue, 11 Jun 2013 17:24:28 +0300 >>> >>>> depends on X86_TSC >>> >>> Wait a second, I didn't notice this before. There needs to be a better >>> way to test for the accuracy you need, or if the issue is lack of a proper >>> API for cycle counter reading, fix that rather than add ugly arch >>> specific dependencies to generic networking code. >> >> This should be sched_clock(), rather than direct TSC access. >> Also any code using TSC or sched_clock has to be carefully audited to deal >> with >> clocks running at different rates on different CPU's. Basically value is only >> meaning full on same CPU. > > OK, > > If we covert to sched_clock(), would adding a define such as > HAVE_HIGH_PRECISION_CLOCK to architectures that have both a high precision > clock and a 64 bit cycles_t be a good solution? > > (if not any other suggestion?)
Hm, probably cpu_clock() and similar might be better, since they use sched_clock() in the background when !CONFIG_HAVE_UNSTABLE_SCHED_CLOCK (meaning when sched_clock() provides synchronized highres time source from the architecture), and, quoting .... Otherwise it tries to create a semi stable clock from a mixture of other clocks, including: - GTOD (clock monotomic) - sched_clock() - explicit idle events But yeah, it needs to be evaluated regarding the drift between CPUs in general. Then, eventually, you could get rid of the entire NET_LL_RX_POLL config option plus related ifdefs in the code and have it built-in in general? ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired