[PATCH 3/3] net: stmmac: Cocci spatch "of_table"

2017-09-20 Thread Thomas Meyer
Make sure (of/i2c/platform)_device_id tables are NULL terminated.
Found by coccinelle spatch "misc/of_table.cocci"

Signed-off-by: Thomas Meyer 
---

diff -u -p a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c 
b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
@@ -315,6 +315,7 @@ static int stmmac_dt_phy(struct plat_stm
{ .compatible = "allwinner,sun8i-h3-emac" },
{ .compatible = "allwinner,sun8i-v3s-emac" },
{ .compatible = "allwinner,sun50i-a64-emac" },
+   {},
};
 
/* If phy-handle property is passed from DT, use it as the PHY */


[PATCH 2/6] e100: Cocci spatch "pool_zalloc-simple"

2017-09-20 Thread Thomas Meyer
Use *_pool_zalloc rather than *_pool_alloc followed by memset with 0.
Found by coccinelle spatch "api/alloc/pool_zalloc-simple.cocci"

Signed-off-by: Thomas Meyer 
---

diff -u -p a/drivers/net/ethernet/intel/e100.c 
b/drivers/net/ethernet/intel/e100.c
--- a/drivers/net/ethernet/intel/e100.c
+++ b/drivers/net/ethernet/intel/e100.c
@@ -1910,11 +1910,10 @@ static int e100_alloc_cbs(struct nic *ni
nic->cb_to_use = nic->cb_to_send = nic->cb_to_clean = NULL;
nic->cbs_avail = 0;
 
-   nic->cbs = pci_pool_alloc(nic->cbs_pool, GFP_KERNEL,
- &nic->cbs_dma_addr);
+   nic->cbs = pci_pool_zalloc(nic->cbs_pool, GFP_KERNEL,
+  &nic->cbs_dma_addr);
if (!nic->cbs)
return -ENOMEM;
-   memset(nic->cbs, 0, count * sizeof(struct cb));
 
for (cb = nic->cbs, i = 0; i < count; cb++, i++) {
cb->next = (i + 1 < count) ? cb + 1 : nic->cbs;


Re: [PATCH V2] tipc: Use bsearch library function

2017-09-17 Thread Thomas Meyer

> Am 16.09.2017 um 15:20 schrieb Jon Maloy .
>> 
>> What part of "very time critical" have you verified and benchmarked as
>> inconsequential?
>> 
>> Please post your results.
> 
> I agree with Joe here. This change does not simplify anything, it does not 
> reduce the amount of code, plus that it introduce an unnecessary outline call 
> in a place where we have every reason to let the compiler do its optimization 
> job properly.

Hi,

Okay, should I prepare some performance numbers or do we NAK this change?
What about the other binary search implementation in the same file? Should I 
try to convert it it will it get NAKed for performance reasons too?

With kind regards
Thomas

smime.p7s
Description: S/MIME cryptographic signature


[PATCH V2] tipc: Use bsearch library function

2017-09-16 Thread Thomas Meyer
Use common library function rather than explicitly coding
some variant of it yourself.

Signed-off-by: Thomas Meyer 
---
 net/tipc/name_table.c | 30 +++---
 1 file changed, 15 insertions(+), 15 deletions(-)

V2: Coding style

diff --git a/net/tipc/name_table.c b/net/tipc/name_table.c
index bd0aac87b41a..eeb4d7a13de2 100644
--- a/net/tipc/name_table.c
+++ b/net/tipc/name_table.c
@@ -44,6 +44,7 @@
 #include "addr.h"
 #include "node.h"
 #include 
+#include 
 
 #define TIPC_NAMETBL_SIZE 1024 /* must be a power of 2 */
 
@@ -168,6 +169,18 @@ static struct name_seq *tipc_nameseq_create(u32 type, 
struct hlist_head *seq_hea
return nseq;
 }
 
+static int nameseq_find_subseq_cmp(const void *key, const void *elt)
+{
+   struct sub_seq *sseq = (struct sub_seq *)elt;
+   u32 instance = *(u32 *)key;
+
+   if (instance < sseq->lower)
+   return -1;
+   else if (instance > sseq->upper)
+   return 1;
+   return 0;
+}
+
 /**
  * nameseq_find_subseq - find sub-sequence (if any) matching a name instance
  *
@@ -176,21 +189,8 @@ static struct name_seq *tipc_nameseq_create(u32 type, 
struct hlist_head *seq_hea
 static struct sub_seq *nameseq_find_subseq(struct name_seq *nseq,
   u32 instance)
 {
-   struct sub_seq *sseqs = nseq->sseqs;
-   int low = 0;
-   int high = nseq->first_free - 1;
-   int mid;
-
-   while (low <= high) {
-   mid = (low + high) / 2;
-   if (instance < sseqs[mid].lower)
-   high = mid - 1;
-   else if (instance > sseqs[mid].upper)
-   low = mid + 1;
-   else
-   return &sseqs[mid];
-   }
-   return NULL;
+   return bsearch(&instance, nseq->sseqs, nseq->first_free,
+  sizeof(struct sub_seq), nameseq_find_subseq_cmp);
 }
 
 /**
-- 
2.11.0



[PATCH] tipc: Use bsearch library function

2017-09-11 Thread Thomas Meyer
Use common library function rather than explicitly coding
some variant of it yourself.

Signed-off-by: Thomas Meyer 
---
 net/tipc/name_table.c | 30 +++---
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/net/tipc/name_table.c b/net/tipc/name_table.c
index bd0aac87b41a..345454106390 100644
--- a/net/tipc/name_table.c
+++ b/net/tipc/name_table.c
@@ -44,6 +44,7 @@
 #include "addr.h"
 #include "node.h"
 #include 
+#include 
 
 #define TIPC_NAMETBL_SIZE 1024 /* must be a power of 2 */
 
@@ -168,6 +169,18 @@ static struct name_seq *tipc_nameseq_create(u32 type, 
struct hlist_head *seq_hea
return nseq;
 }
 
+static int nameseq_find_subseq_cmp(const void *key, const void *elt)
+{
+   u32 instance = *(u32 *)key;
+   struct sub_seq *sseq = (struct sub_seq *)elt;
+
+   if (instance < sseq->lower)
+   return -1;
+   else if (instance > sseq->upper)
+   return 1;
+   return 0;
+}
+
 /**
  * nameseq_find_subseq - find sub-sequence (if any) matching a name instance
  *
@@ -176,21 +189,8 @@ static struct name_seq *tipc_nameseq_create(u32 type, 
struct hlist_head *seq_hea
 static struct sub_seq *nameseq_find_subseq(struct name_seq *nseq,
   u32 instance)
 {
-   struct sub_seq *sseqs = nseq->sseqs;
-   int low = 0;
-   int high = nseq->first_free - 1;
-   int mid;
-
-   while (low <= high) {
-   mid = (low + high) / 2;
-   if (instance < sseqs[mid].lower)
-   high = mid - 1;
-   else if (instance > sseqs[mid].upper)
-   low = mid + 1;
-   else
-   return &sseqs[mid];
-   }
-   return NULL;
+   return bsearch(&instance, nseq->sseqs, nseq->first_free,
+  sizeof(struct sub_seq), nameseq_find_subseq_cmp);
 }
 
 /**
-- 
2.11.0



Re: [PATCH 6/10] ixgbe: Use ARRAY_SIZE macro

2017-09-06 Thread Thomas Meyer
On Tue, Sep 05, 2017 at 02:22:05PM -0700, David Miller wrote:
> From: Joe Perches 
> Date: Tue, 05 Sep 2017 13:01:18 -0700
> 
> > On Tue, 2017-09-05 at 21:45 +0200, Thomas Meyer wrote:
> >> On Tue, Sep 05, 2017 at 11:50:44AM -0700, David Miller wrote:
> >> > From: Thomas Meyer 
> >> > Date: Sun, 03 Sep 2017 14:19:31 +0200
> >> > 
> >> > > Use ARRAY_SIZE macro, rather than explicitly coding some variant of it
> >> > > yourself.
> >> > > Found with: find -type f -name "*.c" -o -name "*.h" | xargs perl -p -i 
> >> > > -e
> >> > > 's/\bsizeof\s*\(\s*(\w+)\s*\)\s*\ 
> >> > > /\s*sizeof\s*\(\s*\1\s*\[\s*0\s*\]\s*\)
> >> > > /ARRAY_SIZE(\1)/g' and manual check/verification.
> >> > > 
> >> > > Signed-off-by: Thomas Meyer 
> >> > 
> >> > This should be submitted to the Intel ethernet driver maintainers.
> >> 
> >> Hi,
> >> 
> >> my script checks the output of get_maintainer scripts and only sends to 
> >> "open
> >> list" entries.
> >> 
> >> The intel-wired-...@lists.osuosl.org is moderated, so that's why the patch
> >> wasn't send there.
> >> 
> >> Strangely the lists for nouv...@lists.freedesktop.org and
> >> intel-gvt-...@lists.freedesktop.org appears as open lists in the 
> >> MAINTAINERS
> >> file but seems to be also moderated lists... At least I got some reply 
> >> that my
> >> message awaits approval. Maybe an update to the MAINTAINERS file is missing
> >> here?
> >> 
> >> I may drop above check in my script and send to all mailing lists that
> >> get_maintainer.pl will return.
> > 
> > There's a difference between moderated and subscriber-only
> > entries in MAINTAINERS.
> > 
> > get_maintainers will by default list moderated lists and
> > not show subscriber-only lists unless using the -s switch.
> 
> Furthermore, nothing prevented you from CC:'ing the maintainer,
> Jeff Kirscher.

Hi,

That's the other condition in my script. I only send to the role
"maintainer" from the output of get_maintainer.pl. But Mr Jeff
Kirscher is only listed as supporter...

Anyway I did bounce the email to him.

with kind regards
thomas


Re: [PATCH 6/10] ixgbe: Use ARRAY_SIZE macro

2017-09-05 Thread Thomas Meyer
On Tue, Sep 05, 2017 at 11:50:44AM -0700, David Miller wrote:
> From: Thomas Meyer 
> Date: Sun, 03 Sep 2017 14:19:31 +0200
> 
> > Use ARRAY_SIZE macro, rather than explicitly coding some variant of it
> > yourself.
> > Found with: find -type f -name "*.c" -o -name "*.h" | xargs perl -p -i -e
> > 's/\bsizeof\s*\(\s*(\w+)\s*\)\s*\ /\s*sizeof\s*\(\s*\1\s*\[\s*0\s*\]\s*\)
> > /ARRAY_SIZE(\1)/g' and manual check/verification.
> > 
> > Signed-off-by: Thomas Meyer 
> 
> This should be submitted to the Intel ethernet driver maintainers.
Hi,

my script checks the output of get_maintainer scripts and only sends to "open
list" entries.

The intel-wired-...@lists.osuosl.org is moderated, so that's why the patch
wasn't send there.

Strangely the lists for nouv...@lists.freedesktop.org and
intel-gvt-...@lists.freedesktop.org appears as open lists in the MAINTAINERS
file but seems to be also moderated lists... At least I got some reply that my
message awaits approval. Maybe an update to the MAINTAINERS file is missing
here?

I may drop above check in my script and send to all mailing lists that
get_maintainer.pl will return.

> 
> Thank you.


[PATCH 6/10] ixgbe: Use ARRAY_SIZE macro

2017-09-03 Thread Thomas Meyer
Use ARRAY_SIZE macro, rather than explicitly coding some variant of it
yourself.
Found with: find -type f -name "*.c" -o -name "*.h" | xargs perl -p -i -e
's/\bsizeof\s*\(\s*(\w+)\s*\)\s*\ /\s*sizeof\s*\(\s*\1\s*\[\s*0\s*\]\s*\)
/ARRAY_SIZE(\1)/g' and manual check/verification.

Signed-off-by: Thomas Meyer 
---

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c 
b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
index 72d84a065e34..fabb11475fb4 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
@@ -21,6 +21,7 @@
  *  Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
  *
  
**/
+#include 
 #include "ixgbe_x540.h"
 #include "ixgbe_type.h"
 #include "ixgbe_common.h"
@@ -947,7 +948,7 @@ static s32 ixgbe_checksum_ptr_x550(struct ixgbe_hw *hw, u16 
ptr,
u16 length, bufsz, i, start;
u16 *local_buffer;
 
-   bufsz = sizeof(buf) / sizeof(buf[0]);
+   bufsz = ARRAY_SIZE(buf);
 
/* Read a chunk at the pointer location */
if (!buffer) {


[PATCH 8/10] ath9k: Use ARRAY_SIZE macro

2017-09-03 Thread Thomas Meyer
Use ARRAY_SIZE macro, rather than explicitly coding some variant of it
yourself.
Found with: find -type f -name "*.c" -o -name "*.h" | xargs perl -p -i -e
's/\bsizeof\s*\(\s*(\w+)\s*\)\s*\ /\s*sizeof\s*\(\s*\1\s*\[\s*0\s*\]\s*\)
/ARRAY_SIZE(\1)/g' and manual check/verification.

Signed-off-by: Thomas Meyer 
---

diff --git a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c 
b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
index 3dbfd86ebe36..c2e210c0a770 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
@@ -15,6 +15,7 @@
  */
 
 #include 
+#include 
 #include "hw.h"
 #include "ar9003_phy.h"
 #include "ar9003_eeprom.h"
@@ -2946,14 +2947,12 @@ static const struct ar9300_eeprom 
*ar9300_eep_templates[] = {
 
 static const struct ar9300_eeprom *ar9003_eeprom_struct_find_by_id(int id)
 {
-#define N_LOOP (sizeof(ar9300_eep_templates) / sizeof(ar9300_eep_templates[0]))
int it;
 
-   for (it = 0; it < N_LOOP; it++)
+   for (it = 0; it < ARRAY_SIZE(ar9300_eep_templates); it++)
if (ar9300_eep_templates[it]->templateVersion == id)
return ar9300_eep_templates[it];
return NULL;
-#undef N_LOOP
 }
 
 static int ath9k_hw_ar9300_check_eeprom(struct ath_hw *ah)


[PATCH 7/10] net/mlx4_core: Use ARRAY_SIZE macro

2017-09-03 Thread Thomas Meyer
Use ARRAY_SIZE macro, rather than explicitly coding some variant of it
yourself.
Found with: find -type f -name "*.c" -o -name "*.h" | xargs perl -p -i -e
's/\bsizeof\s*\(\s*(\w+)\s*\)\s*\ /\s*sizeof\s*\(\s*\1\s*\[\s*0\s*\]\s*\)
/ARRAY_SIZE(\1)/g' and manual check/verification.

Signed-off-by: Thomas Meyer 
---

diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.c 
b/drivers/net/ethernet/mellanox/mlx4/fw.c
index 041c0ed65929..8eca12927be0 100644
--- a/drivers/net/ethernet/mellanox/mlx4/fw.c
+++ b/drivers/net/ethernet/mellanox/mlx4/fw.c
@@ -36,6 +36,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include "fw.h"
 #include "icm.h"
@@ -2450,14 +2451,14 @@ int mlx4_config_dev_retrieval(struct mlx4_dev *dev,
csum_mask = (config_dev.rx_checksum_val >> 
CONFIG_DEV_RX_CSUM_MODE_PORT1_BIT_OFFSET) &
CONFIG_DEV_RX_CSUM_MODE_MASK;
 
-   if (csum_mask >= 
sizeof(config_dev_csum_flags)/sizeof(config_dev_csum_flags[0]))
+   if (csum_mask >= ARRAY_SIZE(config_dev_csum_flags))
return -EINVAL;
params->rx_csum_flags_port_1 = config_dev_csum_flags[csum_mask];
 
csum_mask = (config_dev.rx_checksum_val >> 
CONFIG_DEV_RX_CSUM_MODE_PORT2_BIT_OFFSET) &
CONFIG_DEV_RX_CSUM_MODE_MASK;
 
-   if (csum_mask >= 
sizeof(config_dev_csum_flags)/sizeof(config_dev_csum_flags[0]))
+   if (csum_mask >= ARRAY_SIZE(config_dev_csum_flags))
return -EINVAL;
params->rx_csum_flags_port_2 = config_dev_csum_flags[csum_mask];
 
diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c 
b/drivers/net/ethernet/mellanox/mlx4/main.c
index 5fe5cdc51357..fe18650c9342 100644
--- a/drivers/net/ethernet/mellanox/mlx4/main.c
+++ b/drivers/net/ethernet/mellanox/mlx4/main.c
@@ -34,6 +34,7 @@
  */
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -3658,7 +3659,7 @@ static int __mlx4_init_one(struct pci_dev *pdev, int 
pci_dev_data,
 * per port, we must limit the number of VFs to 63 (since their are
 * 128 MACs)
 */
-   for (i = 0; i < sizeof(nvfs)/sizeof(nvfs[0]) && i < num_vfs_argc;
+   for (i = 0; i < ARRAY_SIZE(nvfs) && i < num_vfs_argc;
 total_vfs += nvfs[param_map[num_vfs_argc - 1][i]], i++) {
nvfs[param_map[num_vfs_argc - 1][i]] = num_vfs[i];
if (nvfs[i] < 0) {
@@ -3667,7 +3668,7 @@ static int __mlx4_init_one(struct pci_dev *pdev, int 
pci_dev_data,
goto err_disable_pdev;
}
}
-   for (i = 0; i < sizeof(prb_vf)/sizeof(prb_vf[0]) && i < probe_vfs_argc;
+   for (i = 0; i < ARRAY_SIZE(prb_vf) && i < probe_vfs_argc;
 i++) {
prb_vf[param_map[probe_vfs_argc - 1][i]] = probe_vf[i];
if (prb_vf[i] < 0 || prb_vf[i] > nvfs[i]) {
@@ -3746,11 +3747,11 @@ static int __mlx4_init_one(struct pci_dev *pdev, int 
pci_dev_data,
if (total_vfs) {
unsigned vfs_offset = 0;
 
-   for (i = 0; i < sizeof(nvfs)/sizeof(nvfs[0]) &&
+   for (i = 0; i < ARRAY_SIZE(nvfs) &&
 vfs_offset + nvfs[i] < extended_func_num(pdev);
 vfs_offset += nvfs[i], i++)
;
-   if (i == sizeof(nvfs)/sizeof(nvfs[0])) {
+   if (i == ARRAY_SIZE(nvfs)) {
err = -ENODEV;
goto err_release_regions;
}


Re: [PATCH] ipv6: sr: Use ARRAY_SIZE macro

2017-09-01 Thread Thomas Meyer
On Fri, Sep 01, 2017 at 08:51:55PM -0700, Joe Perches wrote:
> On Fri, 2017-09-01 at 18:35 -0700, David Miller wrote:
> > From: Thomas Meyer 
> > Date: Thu, 31 Aug 2017 16:18:15 +0200
> > 
> > > Grepping for "sizeof\(.+\) / sizeof\(" found this as one of the first
> > > candidates.
> > > Maybe a coccinelle can catch all of those.
> 
Hi,

> Umm: try scripts/coccinelle/misc/array_size.cocci

Yes, I found out/remembered after I submitted above patch... I used to
run most of the cocci spatches (some just run too long) after each rc1 release, 
but lost interest/time. nobody seems to
do this regularly, at least for existing spatches.

See 6 patches with Message-ID 20170901212907.5662-1-tho...@m3y3r.de

> Until then, maybe a perl script?
> 
> $ git grep --name-only sizeof.*/.*sizeof drivers/net | \
>   xargs perl -p -i -e 
> 's/\bsizeof\s*\(\s*(\w+)\s*\)\s*\/\s*sizeof\s*\(\s*\1\s*\[\s*0\s*\]\s*\)/ARRAY_SIZE(\1)/g'
> 
> gives:
> 
> $ git diff --stat drivers/net
>  drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c   |   2 +-
>  drivers/net/ethernet/mellanox/mlx4/fw.c |   4 +--
>  drivers/net/ethernet/mellanox/mlx4/main.c   |   8 +++---
>  drivers/net/wireless/ath/ath9k/ar9003_eeprom.c  |   2 +-
>  drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phytbl_n.c | 186 
> +++---
>  5 files changed, 101 insertions(+), 101 deletions(-)

Which makes me wonder why cocci didn't found above places...
Also cocci includes linux/kernel.h if not already present.

I will give above regex a try for the whole kernel tree and check for
false positives.

with kind regards
thomas


[PATCH] ipv6: sr: Use ARRAY_SIZE macro

2017-08-31 Thread Thomas Meyer
Grepping for "sizeof\(.+\) / sizeof\(" found this as one of the first
candidates.
Maybe a coccinelle can catch all of those.

Signed-off-by: Thomas Meyer 
---
 net/ipv6/seg6_hmac.c | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/net/ipv6/seg6_hmac.c b/net/ipv6/seg6_hmac.c
index f950cb53d5e3..33fb35cbfac1 100644
--- a/net/ipv6/seg6_hmac.c
+++ b/net/ipv6/seg6_hmac.c
@@ -12,6 +12,7 @@
  */
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -110,7 +111,7 @@ static struct seg6_hmac_algo *__hmac_get_algo(u8 alg_id)
struct seg6_hmac_algo *algo;
int i, alg_count;
 
-   alg_count = sizeof(hmac_algos) / sizeof(struct seg6_hmac_algo);
+   alg_count = ARRAY_SIZE(hmac_algos);
for (i = 0; i < alg_count; i++) {
algo = &hmac_algos[i];
if (algo->alg_id == alg_id)
@@ -360,7 +361,7 @@ static int seg6_hmac_init_algo(void)
struct shash_desc *shash;
int i, alg_count, cpu;
 
-   alg_count = sizeof(hmac_algos) / sizeof(struct seg6_hmac_algo);
+   alg_count = ARRAY_SIZE(hmac_algos);
 
for (i = 0; i < alg_count; i++) {
struct crypto_shash **p_tfm;
@@ -421,7 +422,7 @@ void seg6_hmac_exit(void)
struct seg6_hmac_algo *algo = NULL;
int i, alg_count, cpu;
 
-   alg_count = sizeof(hmac_algos) / sizeof(struct seg6_hmac_algo);
+   alg_count = ARRAY_SIZE(hmac_algos);
for (i = 0; i < alg_count; i++) {
algo = &hmac_algos[i];
for_each_possible_cpu(cpu) {
-- 
2.11.0



Re: 2.6.21 known regressions (v2) (for -stable team)

2007-04-28 Thread Thomas Meyer
Michal Piotrowski schrieb:
> Subject: Bad interaction between dynticks and amarok?
> References : http://lkml.org/lkml/2007/4/26/307
> Submitter  : Thomas Meyer <[EMAIL PROTECTED]>
> Status : Unknow
>
>   
Please remove this from the regression list. This seems to be an
userspace only problem and is not related to any kernel driver:
amarok and/or audacious seems to repeatedly read/write to the X socket:

tail of the strace of audacious:
gettimeofday({1177782978, 24491}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {224, 581502867}) = 0
clock_gettime(CLOCK_MONOTONIC, {224, 581614815}) = 0
select(4, [3], [3], NULL, NULL) = 1 (out [3])
writev(3,
[{"[EMAIL PROTECTED]"..., 40}], 1)
= 40
read(3, 0x80da6c8, 4096)= -1 EAGAIN (Resource
temporarily unavailable)
gettimeofday({1177782978, 25286}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}], 2, 9) = 0
gettimeofday({1177782978, 33242}, NULL) = 0
read(3, 0x80da6c8, 4096)= -1 EAGAIN (Resource
temporarily unavailable)
gettimeofday({1177782978, 33475}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}], 2, 1) = 0
gettimeofday({1177782978, 36548}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {224, 593554129}) = 0
read(3, 0x80da6c8, 4096)= -1 EAGAIN (Resource
temporarily unavailable)
gettimeofday({1177782978, 36921}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}], 2, 9) = 0
gettimeofday({1177782978, 46572}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {224, 603578038}) = 0
clock_gettime(CLOCK_MONOTONIC, {224, 603689148}) = 0
select(4, [3], [3], NULL, NULL) = 1 (out [3])
writev(3, [{"[EMAIL PROTECTED] \0L\0\20\0\23"...,
40}], 1) = 40
read(3, 0x80da6c8, 4096)= -1 EAGAIN (Resource
temporarily unavailable)
gettimeofday({1177782978, 47341}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}], 2, 9) = 0
gettimeofday({1177782978, 56566}, NULL) = 0
read(3, 0x80da6c8, 4096)= -1 EAGAIN (Resource
temporarily unavailable)
gettimeofday({1177782978, 56799}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}], 2, 0) = 0
clock_gettime(CLOCK_MONOTONIC, {224, 613921380}) = 0
read(3, 0x80da6c8, 4096)= -1 EAGAIN (Resource
temporarily unavailable)
gettimeofday({1177782978, 57282}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}], 2, 9) = 0
gettimeofday({1177782978, 67696}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {224, 624704202}) = 0
clock_gettime(CLOCK_MONOTONIC, {224, 624817966}) = 0
select(4, [3], [3], NULL, NULL) = 1 (out [3])
writev(3, [{"[EMAIL PROTECTED]
\0L\0\20\0\23\0"..., 40}], 1) = 40
read(3, 0x80da6c8, 4096)= -1 EAGAIN (Resource
temporarily unavailable)
gettimeofday({1177782978, 68476}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}], 2, 9) = 0
gettimeofday({1177782978, 76564}, NULL) = 0
read(3, 0x80da6c8, 4096)= -1 EAGAIN (Resource
temporarily unavailable)
gettimeofday({1177782978, 76796}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}], 2, 0) = 0
clock_gettime(CLOCK_MONOTONIC, {224, 633919963}) = 0
read(3, 0x80da6c8, 4096)= -1 EAGAIN (Resource
temporarily unavailable)
gettimeofday({1177782978, 77280}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}], 2, 9) = 0
gettimeofday({1177782978, 86898}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {224, 643911329}) = 0
clock_gettime(CLOCK_MONOTONIC, {224, 644025581}) = 0
select(4, [3], [3], NULL, NULL) = 1 (out [3])
writev(3, [{"[EMAIL PROTECTED]
\0L\0\20\0\23"..., 40}], 1) = 40
read(3, 0x80da6c8, 4096)= -1 EAGAIN (Resource
temporarily unavailable)
gettimeofday({1177782978, 87702}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN, revents=POLLIN}], 2,
9) = 1
read(3, "\n\3P\v\4\0\200\2\0\0\0\0\210v\274\277r\300\10\10x\35!"...,
4096) = 96
read(3, 0x80da6c8, 4096)= -1 EAGAIN (Resource
temporarily unavailable)
read(3, 0x80da6c8, 4096)= -1 EAGAIN (Resource
temporarily unavailable)
read(3, 0x80da6c8, 4096)= -1 EAGAIN (Resource
temporarily unavailable)
gettimeofday({1177782978, 90108}, NULL) = 0
gettimeofday({1177782978, 90163}, NULL) = 0

But i didn't have a look at what is going on here. But running amarok
and/or audacious (without playing a song!) adds 50-70 more interrupts to
the timer interrupt.

with kind regards
thomas

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html