From: Jim C. <jim...@gm...> - 2012-05-19 07:38:15
|
Hi Oliver, Larry, Another batch: 1- revisit debugfs.c typecasts again. I used size_t, since its an integer type (like fidx), and changes size with platform (like uintptr_t) 2- corrects broken patch from previous batch 3- fixes incomplete patch which Oliver had to fix up for 2.6.32-3 hopefully this finishes it. 4- candy 5- DECL_OR_STUB reduces double prototypes 10- I think acxpci-upload-fw has some cruft that could be removed, after you (Oliver) fixed the separate firmware loading in _acx_upload_fw, needed by mem 0001-debugfs.c-fix-types-warnings.patch 0002-common.c-set-debug-flags-by-symbolic-names.patch 0003-abstract-ieee80211_VIF-changes-in-acx_op_-add-remove.patch 0004-common.c-replace-if-then-else-with-min-in-switch-cas.patch 0005-add-DECL_OR_STUB-macro-to-acx.h-use-it-in-merge.h.patch 0006-pci.h-drop-acxpci_upload_fw-prototypes.patch 0007-drop-STATick-no-longer-needed.patch 0008-cleanup-ifdefs-in-common.c-init-exit-funcs.patch 0009-merge.c-make-acx_process_rxdesc-static.patch 0010-cleanup-upload_fw.patch 0011-add-MACSTR_SIZE.patch 0012-hide-acx_op_tx-iface-change-in-acx_compat.h.patch 0013-cleanup-debugfs.c-fn-protos.patch 0014-scripts-wifi-probe.rc-loads-wifi-probe.prefs.patch acx-mac80211$ git diff --stat master acx.h | 61 ++++++++++++++++++++++++++- acx_compat.h | 32 +++++++++++--- acx_func.h | 1 + acx_struct_dev.h | 2 +- common.c | 113 ++++++++++++++++---------------------------------- debugfs.c | 31 ++++++-------- mem.c | 27 ++++++------ mem.h | 3 -- merge.c | 10 ++--- merge.h | 74 ++++++++++++++++----------------- pci.c | 88 +-------------------------------------- pci.h | 16 ++++--- scripts/wifi-probe.rc | 19 ++++++++- usb.c | 4 +- Other Items: Im certain that debugfs files livecycle is not quite correct. In addition to expected /dbg/acx_mac80211/phyX, Im seeing /dbg/phyX show up also (on ifup I think), and theyre not going away on ifdown. I cleaned up PROC_FS vs DEBUG_FS a bit, but theres more to be done. EXTRA_CFLAGS:= -g -DACX_WANT_PROC_FILES_ANYWAY \ breaks currently. I think this one simplifies once lifecycle issues are fixed. your __acquire/__release patch seems to fix sparse complaints. Of course, its now thowing new ones. CHECK /home/jimc/projects/lx/acx-mac80211/merge.c merge.c:463:48: warning: cast removes address space of expression merge.c:563:20: warning: cast removes address space of expression merge.c:1618:32: warning: incorrect type in assignment (different address spaces) merge.c:1618:32: expected unsigned char [noderef] [usertype] <asn:2>*[usertype] cmd_area merge.c:1618:32: got unsigned char [usertype] *<noident> merge.c:1619:33: warning: incorrect type in assignment (different address spaces) merge.c:1619:33: expected unsigned char [noderef] [usertype] <asn:2>*[usertype] info_area merge.c:1619:33: got unsigned char [usertype] *<noident> interrupt-masks.h:10:5: warning: symbol 'interrupt_masks' was not declared. Should it be static? interrupt-masks.h:99:12: warning: symbol 'devtype_names' was not declared. Should it be static? interrupt-masks.h:100:12: warning: symbol 'chiptype_names' was not declared. Should it be static? interrupt-masks.h:109:29: warning: symbol 'interrupt_descs' was not declared. Should it be static? interrupt-masks.h:165:6: warning: symbol 'interrupt_show_flags' was not declared. Should it be static? include/linux/spinlock.h:340:9: warning: context imbalance in 'acx_reset_dev' - unexpected unlock interrupt-masks.h:33:25: warning: cast truncates bits from constant value (ffff10fc becomes 10fc) CHECK /home/jimc/projects/lx/acx-mac80211/debugfs.c Im mildly concerned about playing with lock *hooks* linux-2.6$ more Documentation/lockstat.txt LOCK STATISTICS <ascii art> lock, unlock - the regular lock functions __* - the hooks <> - states With these hooks we provide the following statistics: con-bounces - number of lock contention that involved x-cpu data contentions - number of lock acquisitions that had to wait wait time min - shortest (non-0) time we ever had to wait for a lock max - longest time we ever had to wait for a lock total - total time we spend waiting on this lock acq-bounces - number of lock acquisitions that involved x-cpu data acquisitions - number of times we took the lock hold time min - shortest (non-0) time we ever held the lock max - longest time we ever held the lock total - total time this lock was held I just rebuilt my kernels with CONFIG_LOCK_STAT, to see if theres anything surprising in there, will try driver before/after the patch, idle/under-load, and let you know what I see. |