Re: loops_per_jiffy: query

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Arjan, 

Thanks for the explanation. I understand that hardcoding loops_per_jiffiy is a really really bad idea, and i have no intensions to hardcode it. I was just trying to find out reason for high CPU usage of the driver. 

As you said that loops_per_jiffy is used for udelay / mdelay, and and changing loops_per_jiffy is causing difference in performance, so can we conclude from this behaviour that either ethernet/wireless driver is using mdelay/udelay (directly or in some indirect way) in data path, and when i change loops_per_jiffy then they are simply waiting less when they calls mdelay / udelay which results in some increase in throughput?

(Please note that these driver are not part of 2.6.11 kernel release, they are in devlopment stage currently)

One more thing i wanted to know, On my Xscale platform kernel reports it to be 399.6 BogoMips and kernel running on my ARM11 platform reports 266.8 BogoMips (here i have not touched loops_per_jiffy :)). Since both processors are running at 400MHz, so can you please explain what may be possible reasons for the difference difference in BogoMips values?

I am trying to debug why same drivers are giving different CPU usage on ARM11 and Xscale, both processors are of almost same capability, on Xscale i am getting very good performance with these drivers and on ARM11 i am getting really bad performnace.

Thanks,
pankaj  

----- Original Message ----
From: Arjan van de Ven <arjan@xxxxxxxxxxxxx>
To: pankaj chauhan <chauhan_ait@xxxxxxxxxxx>
Cc: kernelnewbies@xxxxxxxxxxxx
Sent: Thursday, 21 December, 2006 2:44:21 PM
Subject: Re: loops_per_jiffy: query


> I tried to tweek the value of loops_per_jiffy manually (just for testing, i have no intensions of replacing calibration function :)) on my ARM11. For example setting loops_per_jiffiy value such tthat i get 140 BogoMips, the throughput incereased considerably to 66Mbps, but CPU usage remained around 85%. And using diffrent hard coded values of loops_per_jiffy i got diffrenent Throughput values and CPU usages. 

loops_per_jiffy is used in udelay() and mdelay() functions, which are
delay loops for a certain amount of micro/miliseconds. What you did is
artificially override drivers that wanted to delay a certain time to
delay shorter. This is usually a very bad idea; those delay loops are
there for a reason (although some device drivers are just plain stupid
and abuse them a lot... which network driver did you use?)


-- 
if you want to mail me at work (you don't), use arjan (at) linux.intel.com
Test the interaction between Linux and your BIOS via http://www.linuxfirmwarekit.org


--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/

Send free SMS to your Friends on Mobile from your Yahoo! Messenger. Download Now! http://messenger.yahoo.com/download.php

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux