CC AmitP and linaro kernel,
Apparently, some APPs are very aggressive using v3.15 kernel's header,
since PR_SET_THP_DISABLE is introduced from 3.15. and
PR_SET_TIMERSLACK_PID never appears in mainline kernel, only in android.
Amit,
Guess we need to revert this SET_TIMERSLACK_PID if APP keep using
DHP_DIS. Any concern/suggestion of this issue?
Thanks!
On 06/23/2015 05:46 PM, Mark Brown wrote:
> Hi,
>
> Adding Kevin and Alex - I'm not responsible for the LSK any more, Kevin
> has taken over.
>
> Thanks,
> Mark
>
> On 23 June 2015 at 10:32, YiPing Xu <xuyiping(a)hisilicon.com
> <mailto:xuyiping@hisilicon.com>> wrote:
>
> hi
>
> In the commit below, LSK3.10 add PR_SET_TIMERSLACK_PID to
> prctl, but the code does not really work.
>
>
> https://git.linaro.org/kernel/linux-linaro-stable.git/commitdiff/800f7e9e8d…
>
> And the PR_SET_TIMERSLACK_PID has value 41, which is used as
> PR_SET_THP_DISABLE in kernel main tree.
>
> see
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/includ…
> -- line 184
>
> In lsk-v3.10-15.05, the commit below make
> PR_SET_TIMERSLACK_PID works. We find a lot of APP use value "41" as
> PR_SET_THP_DISABLE, and the kernel get a poor performance
>
>
> https://git.linaro.org/kernel/linux-linaro-stable.git/commit/e1a60cbe0312ad…
>
> Shall we revert the PR_SET_TIMERSLACK_PID code, or keep it
> as same with the kernel main tree?
>
>
Tree/Branch: v3.18.17
Git describe: v3.18.17
Commit: ea5dd38e93 Linux 3.18.17
Build Time: 129 min 38 sec
Passed: 9 / 9 (100.00 %)
Failed: 0 / 9 ( 0.00 %)
Errors: 0
Warnings: 33
Section Mismatches: 0
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
14 warnings 0 mismatches : arm64-allmodconfig
1 warnings 0 mismatches : arm-multi_v5_defconfig
2 warnings 0 mismatches : arm-multi_v7_defconfig
2 warnings 0 mismatches : x86_64-defconfig
22 warnings 0 mismatches : arm-allmodconfig
1 warnings 0 mismatches : arm64-defconfig
-------------------------------------------------------------------------------
Warnings Summary: 33
6 ../net/core/sysctl_net_core.c:26:12: warning: 'one' defined but not used [-Wunused-variable]
3 ../drivers/media/v4l2-core/videobuf2-core.c:3224:26: warning: unused variable 'fileio' [-Wunused-variable]
2 ../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
2 ../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
1 ../fs/btrfs/extent_io.c:2166:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/usb/renesas_usbhs/common.c:469:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/usb/gadget/udc/udc-xilinx.c:2136:34: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/usb/gadget/function/f_ncm.c:203:0: warning: "NCAPS" redefined
1 ../drivers/tty/isicom.c:1058:2: warning: integer overflow in expression [-Woverflow]
1 ../drivers/staging/vt6655/device_main.c:2993:1: warning: the frame size of 1296 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/staging/bcm/CmHost.c:1564:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/staging/bcm/CmHost.c:1546:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/staging/bcm/CmHost.c:1503:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/pci/host/pcie-xilinx.c:154:3: warning: format '%d' expects argument of type 'int', but argument 4 has type 'long unsigned int' [-Wformat]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:467:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:307:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:303:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
1 ../drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1224 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/isdn/hardware/mISDN/w6692.c:1181:2: warning: unsupported argument to '__builtin_return_address' [enabled by default]
1 ../drivers/isdn/hardware/mISDN/mISDNipac.c:759:2: warning: unsupported argument to '__builtin_return_address' [enabled by default]
1 ../drivers/iommu/intel-iommu.c:1749:25: warning: unused variable 'drhd' [-Wunused-variable]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1206:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1201:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1175:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1174:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
1 ../drivers/infiniband/hw/mlx5/mem.c:72:9: warning: comparison of distinct pointer types lacks a cast [enabled by default]
1 ../drivers/hsi/controllers/omap_ssi_port.c:1121:10: warning: 'err' may be used uninitialized in this function [-Wuninitialized]
1 ../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
1 ../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
1 ../crypto/wp512.c:987:1: warning: the frame size of 1112 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../arch/arm/mach-cns3xxx/pcie.c:313:1: warning: the frame size of 1072 bytes is larger than 1024 bytes [-Wframe-larger-than=]
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allmodconfig : PASS, 0 errors, 14 warnings, 0 section mismatches
Warnings:
../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
../net/core/sysctl_net_core.c:26:12: warning: 'one' defined but not used [-Wunused-variable]
../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
../drivers/media/v4l2-core/videobuf2-core.c:3224:26: warning: unused variable 'fileio' [-Wunused-variable]
../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
../drivers/staging/bcm/CmHost.c:1503:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/staging/bcm/CmHost.c:1546:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/staging/bcm/CmHost.c:1564:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/usb/gadget/function/f_ncm.c:203:0: warning: "NCAPS" redefined
../drivers/usb/gadget/udc/udc-xilinx.c:2136:34: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/usb/renesas_usbhs/common.c:469:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
-------------------------------------------------------------------------------
arm-multi_v5_defconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../net/core/sysctl_net_core.c:26:12: warning: 'one' defined but not used [-Wunused-variable]
-------------------------------------------------------------------------------
arm-multi_v7_defconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../net/core/sysctl_net_core.c:26:12: warning: 'one' defined but not used [-Wunused-variable]
../drivers/media/v4l2-core/videobuf2-core.c:3224:26: warning: unused variable 'fileio' [-Wunused-variable]
-------------------------------------------------------------------------------
x86_64-defconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../net/core/sysctl_net_core.c:26:12: warning: 'one' defined but not used [-Wunused-variable]
../drivers/iommu/intel-iommu.c:1749:25: warning: unused variable 'drhd' [-Wunused-variable]
-------------------------------------------------------------------------------
arm-allmodconfig : PASS, 0 errors, 22 warnings, 0 section mismatches
Warnings:
../arch/arm/mach-cns3xxx/pcie.c:313:1: warning: the frame size of 1072 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../crypto/wp512.c:987:1: warning: the frame size of 1112 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../fs/btrfs/extent_io.c:2166:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../net/core/sysctl_net_core.c:26:12: warning: 'one' defined but not used [-Wunused-variable]
../drivers/hsi/controllers/omap_ssi_port.c:1121:10: warning: 'err' may be used uninitialized in this function [-Wuninitialized]
../drivers/infiniband/hw/mlx5/mem.c:72:9: warning: comparison of distinct pointer types lacks a cast [enabled by default]
../drivers/infiniband/ulp/iser/iser_verbs.c:1174:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1175:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1201:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1206:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/isdn/hardware/mISDN/w6692.c:1181:2: warning: unsupported argument to '__builtin_return_address' [enabled by default]
../drivers/isdn/hardware/mISDN/mISDNipac.c:759:2: warning: unsupported argument to '__builtin_return_address' [enabled by default]
../drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1224 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/pci/host/pcie-xilinx.c:154:3: warning: format '%d' expects argument of type 'int', but argument 4 has type 'long unsigned int' [-Wformat]
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../drivers/media/v4l2-core/videobuf2-core.c:3224:26: warning: unused variable 'fileio' [-Wunused-variable]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:303:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:307:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:467:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
../drivers/tty/isicom.c:1058:2: warning: integer overflow in expression [-Woverflow]
../drivers/staging/vt6655/device_main.c:2993:1: warning: the frame size of 1296 bytes is larger than 1024 bytes [-Wframe-larger-than=]
-------------------------------------------------------------------------------
arm64-defconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../net/core/sysctl_net_core.c:26:12: warning: 'one' defined but not used [-Wunused-variable]
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
x86_64-allnoconfig
arm64-allnoconfig
arm-allnoconfig
Hi Kevin,
Added latest RT patches from v3.14.44-rt44
Cheers,
Anders
----
The following changes since commit 474271f666ce974ee183057c022325b3833ecb39:
Merge branch 'v3.14.40-rt37' into v3.14.43-rt42 (2015-06-01 12:10:19 +0200)
are available in the git repository at:
git://git.linaro.org/people/anders.roxell/linux-rt.git tags/v3.14.44-rt44-lno1
for you to fetch changes up to 26c9017e68cc1cfe668fcbf1b6e7c960814520c6:
Merge branch 'v3.14.43-rt42' into v3.14.44-rt44 (2015-06-26 22:36:16 +0200)
----------------------------------------------------------------
Linux 3.14.44-rt44
Changes since v3.14.43-rt42:
- irq_work: Split raised and lazy lists
- irq_work: Introduce arch_irq_work_has_interrupt()
----------------------------------------------------------------
Al Viro (1):
d_walk() might skip too much
Alex Deucher (1):
drm/radeon: add new bonaire pci id
Allen Pais (1):
sparc64: use generic rwsem spinlocks rt
Anders Roxell (1):
Merge branch 'v3.14.43-rt42' into v3.14.44-rt44
Andi Kleen (1):
tools/vm: fix page-flags build
Andrew Morton (1):
fs/binfmt_elf.c:load_elf_binary(): return -EINVAL on zero-length mappings
Andy Grover (1):
target/pscsi: Don't leak scsi_host if hba is VIRTUAL_HOST
Anton Blanchard (1):
powerpc: Align TOC to 256 bytes
Arnaldo Carvalho de Melo (1):
posix-timers: Shorten posix_cpu_timers/<CPU> kernel thread names
Arnd Bergmann (1):
staging: rtl8712, rtl8712: avoid lots of build warnings
Axel Lin (1):
ASoC: mc13783: Fix wrong mask value used in mc13xxx_reg_rmw() calls
Behan Webster (2):
staging, rtl8192e, LLVMLinux: Change extern inline to static inline
staging, rtl8192e, LLVMLinux: Remove unused inline prototype
Benedikt Spranger (2):
ARM: AT91: PIT: Remove irq handler when clock event is unused
clocksource: TCLIB: Allow higher clock rates for clock events
Benjamin Tissoires (1):
Input: elantech - fix semi-mt protocol for v3 HW
Brad Mouring (1):
rtmutex.c: Fix incorrect waiter check
Carsten Emde (3):
latency-hist.patch
hwlatdetect.patch
net: sysrq via icmp
Chen Gang (1):
qla2xxx: remove redundant declaration in 'qla_gbl.h'
Chris Lesiak (1):
hwmon: (ntc_thermistor) Ensure iio channel is of type IIO_VOLTAGE
Christian König (2):
drm/radeon: fix VM_CONTEXT*_PAGE_TABLE_END_ADDR handling
drm/radeon: partially revert "fix VM_CONTEXT*_PAGE_TABLE_END_ADDR handling"
Clark Williams (1):
add /sys/kernel/realtime entry
Daniel Wagner (2):
work-simple: Simple work queue implemenation
thermal: Defer thermal wakups to threads
Darrick J. Wong (1):
jbd2: fix r_count overflows leading to buffer overflow in journal recovery
David Henningsson (1):
ALSA: hda - Add Conexant codecs CX20721, CX20722, CX20723 and CX20724
David Vrabel (1):
xen/events: don't bind non-percpu VIRQs with percpu chip
Eric Work (1):
md/raid0: fix restore to sector variable in raid0_make_request
Eryu Guan (1):
ext4: check for zero length extent explicitly
Frank Rowand (2):
preempt-rt: Convert arm boot_lock to raw
ARM: Initialize ptl->lock for vector page
Frederic Weisbecker (1):
irq_work: Split raised and lazy lists
Gabriele Mazzotta (2):
libata: Add helper to determine when PHY events should be ignored
libata: Ignore spurious PHY event on LPM policy change
Greg Kroah-Hartman (2):
staging: wlags49_h2: fix extern inline functions
Linux 3.14.44
Guenter Roeck (1):
hwmon: (nct6775) Add missing sysfs attribute initialization
Gustavo Bittencourt (1):
rtmutex: enable deadlock detection in ww_mutex_lock functions
Hans de Goede (1):
usb-storage: Add NO_WP_DETECT quirk for Lacie 059f:0651 devices
Harald Freudenberger (1):
crypto: s390/ghash - Fix incorrect ghash icv buffer handling.
Ilya Dryomov (1):
libceph: request a new osdmap if lingering request maps to no osd
Ingo Molnar (23):
drivers: random: Reduce preempt disabled region
drivers/net: Use disable_irq_nosync() in 8139too
mm: Prepare decoupling the page fault disabling logic
x86: Do not unmask io_apic when interrupt is in progress
printk-kill.patch
bug: BUG_ON/WARN_ON variants dependend on RT/!RT
ide: Do not disable interrupts for PREEMPT-RT
input: gameport: Do not disable interrupts on PREEMPT_RT
core: Do not disable interrupts on RT in res_counter.c
genirq: disable irqpoll on -rt
mm: page_alloc: rt-friendly per-cpu pages
mm: convert swap to percpu locked
mm: make vmstat -rt aware
mm: Allow only slub on RT
ipc: Make the ipc code -rt aware
relay: fix timer madness
timers: prepare for full preemption
timers: preempt-rt support
hrtimers: prepare full preemption
stop_machine: convert stop_machine_run() to PREEMPT_RT
tasklet: Prevent tasklets from going into infinite spin in RT
serial: 8250: Clean up the locking for -rt
rt: Improve the serial console PASS_LIMIT
Jan Kara (1):
lib: Fix strnlen_user() to not touch memory after specified maximum
Janusz Dziedzic (1):
mac80211: move WEP tailroom size check
Jason A. Donenfeld (2):
USB: visor: Match I330 phone more precisely
USB: pl2303: Remove support for Samsung I330
Jason Wessel (1):
kgdb/serial: Short term workaround
Jean Delvare (1):
thermal: step_wise: Revert optimization
Joe Lawrence (1):
xhci: gracefully handle xhci_irq dead device
John Kacur (2):
rwlocks: Fix section mismatch
scsi: qla2xxx: Use local_irq_save_nort() in qla2x00_poll
John Stultz (1):
posix-timers: thread posix-cpu-timers on -rt
Josh Cartwright (1):
lockdep: selftest: fix warnings due to missing PREEMPT_RT conditionals
Junling Zheng (1):
net: socket: Fix the wrong returns for recvmsg and sendmsg
K. Y. Srinivasan (1):
storvsc: Set the SRB flags correctly when no data transfer is needed
KOBAYASHI Yoshitake (1):
ipc/mqueue: Add a critical section to avoid a deadlock
Kevin Hao (1):
netpoll: guard the access to dev->npinfo with rcu_read_lock/unlock_bh() for CONFIG_PREEMPT_RT_FULL=y
Kirill A. Shutemov (1):
kernel: use the gnu89 standard explicitly
Kirill Tkhai (1):
sparc: provide EARLY_PRINTK for SPARC
Krzysztof Opasiak (1):
usb: gadget: configfs: Fix interfaces array NULL-termination
Larry Finger (1):
rtlwifi: rtl8192cu: Fix kernel deadlock
Ludovic Desroches (1):
mmc: atmel-mci: fix bad variable type for clkdiv
Lukas Czerner (1):
ext4: fix NULL pointer dereference when journal restart fails
Marc Kleine-Budde (1):
net: sched: dev_deactivate_many(): use msleep(1) instead of yield() to wait for outstanding qdisc_run calls
Marcelo Tosatti (2):
KVM: lapic: mark LAPIC timer handler as irqsafe
KVM: use simple waitqueue for vcpu->wq
Mark Edwards (1):
USB: cp210x: add ID for KCF Technologies PRN device
Mark Hounschell (1):
sd: Disable support for 256 byte/sector disks
Mathias Nyman (2):
xhci: fix isoc endpoint dequeue from advancing too far on transaction error
xhci: Solve full event ring by increasing TRBS_PER_SEGMENT to 256
Mel Gorman (1):
mm, numa: really disable NUMA balancing by default on single node machines
Michael Brunner (1):
gpio: gpio-kempld: Fix get_direction return value
Mike Galbraith (15):
rt,sched,numa: Move task_numa_free() to __put_task_struct(), which -rt offloads
hwlat-detector: Don't ignore threshold module parameter
sched, rt: Fix migrate_enable() thinko
stomp-machine: create lg_global_trylock_relax() primitive
stomp-machine: use lg_global_trylock_relax() to dead with stop_cpus_lock lglock
fs: ntfs: disable interrupt only on !RT
fs, jbd: pull your plug when waiting for space
rt,locking: fix __ww_mutex_lock_interruptible() lockdep annotation
x86: UV: raw_spinlock conversion
scheduling while atomic in cgroup code
sunrpc: make svc_xprt_do_enqueue() use get_cpu_light()
locking: ww_mutex: fix ww_mutex vs self-deadlock
fs,btrfs: fix rt deadlock on extent_buffer->lock
hotplug: Use set_cpus_allowed_ptr() in sync_unplug_thread()
rt, nohz_full: fix nohz_full for PREEMPT_RT_FULL
NeilBrown (1):
md/raid5: don't record new size if resize_stripes fails.
Nicholas Mc Guire (14):
use local spin_locks in local_lock
allow preemption in recursive migrate_disable call
sched: dont calculate hweight in update_migrate_disable()
condition migration_disable on lock acquisition
migrate_disable pushd down in atomic_dec_and_spin_lock
migrate_disable pushd down in rt_spin_trylock_irqsave
migrate_disable pushd down in rt_write_trylock_irqsave
write_lock migrate_disable pushdown to rt_write_lock
read_lock migrate_disable pushdown to rt_read_lock
rt: Cleanup of unnecessary do while 0 in read/write _lock()
bad return value in __mutex_lock_check_stamp
seqlock: consolidate spin_lock/unlock waiting with spin_unlock_wait
API cleanup - use local_lock not __local_lock for soft
softirq: make migrate disable/enable conditioned on softirq_nestcnt transition
Oleg Nesterov (1):
signal/x86: Delay calling signals in atomic
Pan Xinhui (1):
tty/n_gsm.c: fix a memory leak when gsmtty is removed
Paolo Bonzini (1):
KVM: MMU: fix CR4.SMEP=1, CR0.WP=0 with shadow pages
Paul E. McKenney (6):
rcu: Make ksoftirqd do RCU quiescent states
rcu: Eliminate softirq processing from rcutree
timers: Track total number of timers in list
timers: Reduce __run_timers() latency for empty list
timers: Reduce future __run_timers() latency for newly emptied list
timers: Reduce future __run_timers() latency for first add to empty list
Paul Gortmaker (3):
list_bl.h: make list head locking RT safe
simple-wait: rename and export the equivalent of waitqueue_active()
sas-ata/isci: dont't disable interrupts in qc_issue handler
Peter Zijlstra (17):
mm: pagefault_disabled()
mm: raw_pagefault_disable
mm-page-alloc-use-list-last-entry.patch
printk: 'force_early_printk' boot param to help with debugging
mm: page_alloc reduce lock sections further
timer: delay waking softirqs from the jiffy tick
sched: Optimize migrate_disable
sched: Generic migrate_disable
sched: teach migrate_disable about atomic contexts
sched: Do not compare cpu masks in scheduler
sched: Have migrate_disable ignore bounded threads
rcu: Frob softirq test
mm, rt: kmap_atomic scheduling
ipc/sem: Rework semaphore wakeups
x86: crypto: Reduce preempt disabled regions
crypto: Convert crypto notifier chain to SRCU
irq_work: Introduce arch_irq_work_has_interrupt()
Philippe Reynes (1):
ARM: dts: imx27: only map 4 Kbyte for fec registers
Priyanka Jain (1):
net,RT:REmove preemption disabling in netif_rx()
Rafael J. Wysocki (1):
ACPI / init: Fix the ordering of acpi_reserve_resources()
Russell King (1):
ARM: fix missing syscall trace exit
Rusty Russell (1):
lguest: fix out-by-one error in address checking.
Sasha Levin (2):
fs, omfs: add NULL terminator in the end up the token list
vfs: read file_handle only once in handle_to_path
Scott Branden (1):
rt2x00: add new rt2800usb device DWA 130
Scott Mayhew (1):
svcrpc: fix potential GSSX_ACCEPT_SEC_CONTEXT decoding failures
Sebastian Andrzej Siewior (43):
kernel/SRCU: provide a static initializer
ptrace: fix ptrace vs tasklist_lock race
usb: use _nort in giveback
genirq: do not invoke the affinity callback via a workqueue
net: gianfar: do not disable interrupts
net: gianfar: do not try to cleanup TX packets if they are not done
slub: delay ctor until the object is requested
tracing: use migrate_disable() to prevent beeing pushed off the cpu
Revert "migrate_disable pushd down in atomic_dec_and_spin_lock"
percpu-rwsem: compile fix
rtmutex: add a first shot of ww_mutex
rtmutex: use a trylock for waiter lock in trylock
timer: do not spin_trylock() on UP
fs: jbd2: pull your plug when waiting for space
block: mq: use cpu_light()
kernel/hrtimer: be non-freezeable in cpu_chill()
blk-mq: revert raw locks, post pone notifier to POST_DEAD
percpu_ida: use locklocks
irq_work: allow certain work in hard irq context
HACK: printk: drop the logbuf_lock more often
arm/unwind: use a raw_spin_lock
x86/highmem: add a "already used pte" check
arm/highmem: flush tlb on unmap
crypto: Reduce preempt disabled regions, more algos
kernel/cpu: fix cpu down problem if kthread's cpu is going down
kernel/hotplug: restore original cpu mask oncpu/down
net: Add a mutex around devnet_rename_seq
rcu: make RCU_BOOST default on RT
leds: trigger: disable CPU trigger on -RT
i2c/omap: drop the lock hard irq context
gpu/i915: don't open code these things
drm/i915: drop trace_i915_gem_ring_dispatch on rt
wait.h: include atomic.h
kernel/treercu: use a simple waitqueue
a few open coded completions
md: disable bcache
disable preempt lazy on x86-64
gpio: omap: use raw locks for locking
locking/rt-mutex: avoid a NULL pointer dereference on deadlock
arm/futex: disable preemption during futex_atomic_cmpxchg_inatomic()
Revert "rwsem-rt: Do not allow readers to nest"
fs/aio: simple simple work
kernel/irq_work: fix no_hz deadlock
Steven Rostedt (26):
sched: Fix broken setscheduler()
tracing: Account for preempt off in preempt_schedule()
x86: Do not disable preemption in int3 on 32bit
hwlat-detector: Update hwlat_detector to add outer loop detection
hwlat-detector: Use trace_clock_local if available
hwlat-detector: Use thread instead of stop machine
ata: Do not disable interrupts in ide code for preempt-rt
drivers/net: vortex fix locking issues
sched/workqueue: Only wake up idle workers if not blocked on sleeping spin lock
tracing: Show padding as unsigned short
sched: Postpone actual migration disalbe to schedule
futex: Fix bug on when a requeued RT task times out
rwlock: disable migration before taking a lock
timer: Raise softirq if there's irq_work
timer/rt: Always raise the softirq if there's irq_work to be done
x86/mce: Defer mce wakeups to threads for PREEMPT_RT
rt: Make cpu_chill() use hrtimer instead of msleep()
cpu_chill: Add a UNINTERRUPTIBLE hrtimer_nanosleep
net: Avoid livelock in net_tx_action() on RT
acpi/rt: Convert acpi_gbl_hardware lock back to a raw_spinlock_t
cpu: Make hotplug.lock a "sleeping" spinlock on RT
cpu/rt: Rework cpu down for PREEMPT_RT
cpu hotplug: Document why PREEMPT_RT uses a spinlock
softirq: Init softirq local lock after per cpu section is set up
rt,ntp: Move call to schedule_delayed_work() to helper thread
sched: Do not clear PF_NO_SETAFFINITY flag in select_fallback_rq()
Steven Rostedt (Red Hat) (4):
rwsem-rt: Do not allow readers to nest
staging: Mark rtl8821ae as broken
Revert "timers: do not raise softirq unconditionally"
Linux 3.14.44-rt44 REBASE
Sven-Thorsten Dietrich (1):
infiniband: Mellanox IB driver patch use _nort() primitives
Sławomir Demeszko (1):
staging: gdm724x: Correction of variable usage after applying ALIGN()
Takashi Iwai (2):
ALSA: hda - Add headphone quirk for Lifebook E752
Revert "ALSA: hda - Add mute-LED mode control to Thinkpad"
Thomas Gleixner (165):
sched: Init idle->on_rq in init_idle()
sched: Check for idle task in might_sleep()
sched: Add better debug output for might_sleep()
sched: Adjust p->sched_reset_on_fork when nothing else changes
sched: Queue RT tasks to head when prio drops
sched: Consider pi boosting in setscheduler()
early-printk-consolidate.patch
block: Shorten interrupt disabled regions
timekeeping-split-jiffies-lock.patch
vtime-split-lock-and-seqcount.patch
mips-enable-interrupts-in-signal.patch
signal-revert-ptrace-preempt-magic.patch
posix-timers: Prevent broadcast signals
signals: Allow rt tasks to cache one sigqueue struct
mm: Fixup all fault handlers to check current->pagefault_disable
mm: Remove preempt count from pagefault disable/enable
suspend: Prevent might sleep splats
rwsem-inlcude-fix.patch
sysctl-include-fix.patch
net-flip-lock-dep-thingy.patch
softirq-thread-do-softirq.patch
softirq-split-out-code.patch
pci: Use __wake_up_all_locked pci_unblock_user_cfg_access()
rt-preempt-base-config.patch
kconfig-disable-a-few-options-rt.patch
kconfig-preempt-rt-full.patch
rt: local_irq_* variants depending on RT/!RT
preempt: Provide preempt_*_(no)rt variants
core: Do not disable interrupts on RT in kernel/users.c
mm: scatterlist dont disable irqs on RT
signal-fix-up-rcu-wreckage.patch
net-wireless-warn-nort.patch
mm: Replace cgroup_page bit spinlock
buffer_head: Replace bh_uptodate_lock for -rt
fs: jbd/jbd2: Make state lock and journal head lock rt safe
genirq: Disable DEBUG_SHIRQ for rt
genirq-force-threading.patch
drivers/net: fix livelock issues
drivers: net: gianfar: Make RT aware
local-var.patch
rt-local-irq-lock.patch
cpu-rt-variants.patch
mm-page-alloc-fix.patch
mm: bounce: Use local_irq_save_nort
mm: Enable SLUB for RT
slub: Enable irqs for __GFP_WAIT
mm: page_alloc: Use local_lock_on() instead of plain spinlock
radix-tree-rt-aware.patch
panic: skip get_random_bytes for RT_FULL in init_oops_id
timers: Avoid the switch timers base set to NULL trick on RT
hrtimer: fixup hrtimer callback changes for preempt-rt
timer-fd: Prevent live lock
posix-timers: Avoid wakeups when no timers are active
sched-delay-put-task.patch
sched-limit-nr-migrate.patch
sched-mmdrop-delayed.patch
sched-rt-mutex-wakeup.patch
sched-might-sleep-do-not-account-rcu-depth.patch
sched-cond-resched.patch
cond-resched-softirq-fix.patch
cond-resched-lock-rt-tweak.patch
sched-disable-ttwu-queue.patch
sched: Disable CONFIG_RT_GROUP_SCHED on RT
sched: ttwu: Return success when only changing the saved_state value
stomp-machine-raw-lock.patch
hotplug: Lightweight get online cpus
sched-migrate-disable.patch
hotplug-use-migrate-disable.patch
ftrace-migrate-disable-tracing.patch
migrate-disable-rt-variant.patch
sched-clear-pf-thread-bound-on-fallback-rq.patch
net-netif_rx_ni-migrate-disable.patch
softirq: Sanitize softirq pending for NOHZ/RT
lockdep-rt.patch
mutex-no-spin-on-rt.patch
softirq-local-lock.patch
softirq-disable-softirq-stacks-for-rt.patch
softirq-make-fifo.patch
genirq: Allow disabling of softirq processing in irq thread context
local-vars-migrate-disable.patch
md: raid5: Make raid5_percpu handling RT aware
rtmutex-futex-prepare-rt.patch
futex: Ensure lock/unlock symetry versus pi_lock and hash bucket lock
rtmutex-lock-killable.patch
rt-mutex-add-sleeping-spinlocks-support.patch
spinlock-types-separate-raw.patch
rtmutex-avoid-include-hell.patch
rt-add-rt-spinlocks.patch
rt-add-rt-to-mutex-headers.patch
rwsem-add-rt-variant.patch
rt: Add the preempt-rt lock replacement APIs
timer-handle-idle-trylock-in-get-next-timer-irq.patch
timers: do not raise softirq unconditionally
rcu: Merge RCU-bh into RCU-preempt
rcu-more-fallout.patch
lglocks-rt.patch
drivers-tty-fix-omap-lock-crap.patch
drivers-tty-pl011-irq-disable-madness.patch
fs: namespace preemption fix
fs-block-rt-support.patch
x86: Convert mce timer to hrtimer
x86: stackprotector: Avoid random pool on rt
x86: Use generic rwsem_spinlocks on -rt
epoll.patch
mm-vmalloc.patch
rt: Introduce cpu_chill()
block: Use cpu_chill() for retry loops
fs: dcache: Use cpu_chill() in trylock loops
net: Use cpu_chill() instead of cpu_relax()
workqueue: Use normal rcu
Use local irq lock instead of irq disable regions
workqueue vs ata-piix livelock fixup
sched: Distangle worker accounting from rqlock
idr: Use local lock instead of preempt enable/disable
debugobjects-rt.patch
jump-label-rt.patch
use skbufhead with raw lock
x86-no-perf-irq-work-rt.patch
printk-rt-aware.patch
Powerpc: Use generic rwsem on RT
power-disable-highmem-on-rt.patch
arm-disable-highmem-on-rt.patch
ARM: at91: tclib: Default to tclib timer for RT
mips-disable-highmem-on-rt.patch
arm-enable-highmem-for-rt.patch
x86-kvm-require-const-tsc-for-rt.patch
scsi-fcoe-rt-aware.patch
dm: Make rt aware
cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
random: Make it work on rt
seqlock: Prevent rt starvation
net: Another local_irq_disable/kmalloc headache
net: netfilter: Serialize xt_write_recseq sections on RT
net: Use local_bh_disable in netif_rx_ni()
rt: rwsem/rwlock: lockdep annotations
softirq: Check preemption after reenabling interrupts
softirq: Make serving softirqs a task flag
softirq: Split handling function
softirq: Split softirq locks
softirq: Adapt NOHZ softirq pending check to new RT scheme
rcu: Disable RCU_FAST_NO_HZ on RT
sched: Add support for lazy preemption
x86-preempt-lazy.patch
arm-preempt-lazy-support.patch
powerpc-preempt-lazy-support.patch
mmci: Remove bogus local_irq_save()
wait-simple: Simple waitqueue implementation
wait-simple: Rework for use with completions
rcu-more-swait-conversions.patch
completion: Use simple wait queues
workqueue: Prevent deadlock/stall on RT
rtmutex: Simplify rtmutex_slowtrylock()
rtmutex: Simplify and document try_to_take_rtmutex()
rtmutex: No need to keep task ref for lock owner check
rtmutex: Clarify the boost/deboost part
rtmutex: Document pi chain walk
rtmutex: Simplify remove_waiter()
rtmutex: Confine deadlock logic to futex
rtmutex: Cleanup deadlock detector debug logic
rtmutex: Avoid pointless requeueing in the deadlock detection chain walk
futex: Make unlock_pi more robust
futex: Use futex_top_waiter() in lookup_pi_state()
futex: Split out the waiter check from lookup_pi_state()
futex: Split out the first waiter attachment from lookup_pi_state()
futex: Simplify futex_lock_pi_atomic() and make it more robust
Tiejun Chen (2):
rcutree/rcu_bh_qs: disable irq while calling rcu_preempt_qs()
cpu_down: move migrate_enable() back
Watanabe (1):
hrtimer: Raise softirq if hrtimer irq stalled
Wu Zhangjin (1):
USB: Fix the mouse problem when copying large amounts of data
Yadi.hu (1):
ARM: enable irq in translation/section permission fault handlers
Yang Shi (3):
mm/memcontrol: Don't call schedule_work_on in preemption disabled context
hrtimer: Move schedule_work call to helper thread
mips: rt: Replace pagefault_* to raw version
Yong Zhang (6):
hotplug: sync_unplug: No " " in task name
hotplug: Reread hotplug_pcp on pin_current_cpu() retry
mm: Protect activate_mm() by preempt_[disable&enable]_rt()
lockdep: Selftest: Only do hardirq context test for raw spinlock
perf: Make swevent hrtimer run in irq instead of softirq
ARM: cmpxchg: define __HAVE_ARCH_CMPXCHG for armv6 and later
Zhao Hongjiang (1):
timers: prepare for full preemption improve
Zidan Wang (2):
ASoC: wm8960: fix "RINPUT3" audio route error
ASoC: wm8994: correct BCLK DIV 348 to 384
Makefile | 8 ++-
arch/alpha/include/asm/Kbuild | 1 +
arch/arc/include/asm/Kbuild | 1 +
arch/arm/boot/dts/imx27.dtsi | 2 +-
arch/arm/include/asm/Kbuild | 1 +
arch/arm/kernel/entry-common.S | 4 +-
arch/arm64/include/asm/Kbuild | 1 +
arch/avr32/include/asm/Kbuild | 1 +
arch/blackfin/include/asm/Kbuild | 1 +
arch/c6x/include/asm/Kbuild | 1 +
arch/cris/include/asm/Kbuild | 1 +
arch/frv/include/asm/Kbuild | 1 +
arch/hexagon/include/asm/Kbuild | 1 +
arch/ia64/include/asm/Kbuild | 1 +
arch/m32r/include/asm/Kbuild | 1 +
arch/m68k/include/asm/Kbuild | 1 +
arch/metag/include/asm/Kbuild | 1 +
arch/microblaze/include/asm/Kbuild | 1 +
arch/mips/include/asm/Kbuild | 1 +
arch/mn10300/include/asm/Kbuild | 1 +
arch/openrisc/include/asm/Kbuild | 1 +
arch/parisc/include/asm/Kbuild | 1 +
arch/powerpc/include/asm/Kbuild | 1 +
arch/powerpc/kernel/vmlinux.lds.S | 1 +
arch/s390/crypto/ghash_s390.c | 25 ++++----
arch/s390/include/asm/Kbuild | 1 +
arch/score/include/asm/Kbuild | 1 +
arch/sh/include/asm/Kbuild | 1 +
arch/sparc/include/asm/Kbuild | 1 +
arch/tile/include/asm/Kbuild | 1 +
arch/um/include/asm/Kbuild | 1 +
arch/unicore32/include/asm/Kbuild | 1 +
arch/x86/include/asm/Kbuild | 1 +
arch/x86/kvm/mmu.c | 2 +-
arch/xtensa/include/asm/Kbuild | 1 +
drivers/acpi/osl.c | 6 +-
drivers/ata/libahci.c | 3 +-
drivers/ata/libata-core.c | 32 ++++++++++
drivers/ata/libata-eh.c | 3 +
drivers/gpio/gpio-kempld.c | 2 +-
drivers/gpu/drm/radeon/cik.c | 2 +-
drivers/gpu/drm/radeon/ni.c | 3 +-
drivers/gpu/drm/radeon/si.c | 2 +-
drivers/hwmon/nct6775.c | 2 +
drivers/hwmon/ntc_thermistor.c | 9 +++
drivers/input/mouse/elantech.c | 2 +-
drivers/lguest/core.c | 2 +-
drivers/md/raid0.c | 4 +-
drivers/md/raid5.c | 3 +-
drivers/mmc/host/atmel-mci.c | 9 ++-
drivers/net/wireless/rt2x00/rt2800usb.c | 1 +
drivers/net/wireless/rtlwifi/usb.c | 2 +-
drivers/scsi/qla2xxx/qla_gbl.h | 2 -
drivers/scsi/qla2xxx/qla_nx2.c | 2 +-
drivers/scsi/sd.c | 19 ++----
drivers/scsi/storvsc_drv.c | 3 +-
drivers/staging/gdm724x/gdm_mux.c | 16 +++--
drivers/staging/rtl8187se/ieee80211/ieee80211.h | 4 +-
drivers/staging/rtl8192e/rtllib.h | 5 +-
drivers/staging/rtl8192e/rtllib_softmac.c | 2 +-
drivers/staging/rtl8192u/ieee80211/ieee80211.h | 10 +--
drivers/staging/rtl8712/ieee80211.h | 4 +-
drivers/staging/wlags49_h2/wl_internal.h | 4 +-
drivers/target/target_core_pscsi.c | 3 +
drivers/target/target_core_pscsi.h | 1 +
drivers/thermal/step_wise.c | 3 -
drivers/tty/hvc/hvc_xen.c | 2 +-
drivers/tty/n_gsm.c | 5 +-
drivers/usb/gadget/configfs.c | 1 +
drivers/usb/host/xhci-ring.c | 7 ++-
drivers/usb/host/xhci.h | 2 +-
drivers/usb/serial/cp210x.c | 1 +
drivers/usb/serial/pl2303.c | 1 -
drivers/usb/serial/pl2303.h | 4 --
drivers/usb/serial/visor.c | 2 +-
drivers/usb/storage/unusual_devs.h | 7 +++
drivers/xen/events/events_base.c | 12 ++--
fs/binfmt_elf.c | 2 +-
fs/dcache.c | 8 +--
fs/ext4/ext4_jbd2.c | 6 ++
fs/ext4/extents.c | 2 +-
fs/fhandle.c | 5 +-
fs/jbd2/recovery.c | 10 ++-
fs/jbd2/revoke.c | 18 +++---
fs/jbd2/transaction.c | 25 +++++---
fs/omfs/inode.c | 3 +-
include/asm-generic/irq_work.h | 10 +++
include/drm/drm_pciids.h | 1 +
include/linux/irq_work.h | 3 +
include/linux/libata.h | 10 +++
include/xen/events.h | 2 +-
kernel/irq_work.c | 83 +++++++++++--------------
kernel/timer.c | 2 +-
lib/strnlen_user.c | 3 +-
localversion-rt | 2 +-
mm/mempolicy.c | 2 +-
net/ceph/osd_client.c | 31 +++++----
net/mac80211/wep.c | 6 +-
net/socket.c | 24 +++----
net/sunrpc/auth_gss/gss_rpc_xdr.c | 23 ++++---
sound/pci/hda/patch_conexant.c | 12 ++++
sound/pci/hda/patch_realtek.c | 1 +
sound/pci/hda/thinkpad_helper.c | 1 -
sound/soc/codecs/mc13783.c | 4 +-
sound/soc/codecs/wm8960.c | 2 +-
sound/soc/codecs/wm8994.c | 2 +-
tools/vm/Makefile | 2 +-
107 files changed, 371 insertions(+), 214 deletions(-)
create mode 100644 include/asm-generic/irq_work.h
Hi!
My name is Joao Pinto and I am currently developing a pilot project with ARM'
Juno r1 board.
The application is very simple: I have a Synopsys board connected to Juno
through PCIe.
Using ARM' factory kernel image or our own linaro kernel image (using latest
release: 4.1 rc4), PCI initialization log provides some worrying messages
(please check bellow log).
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
pciehp: PCI Express Hot Plug Controller Driver version: 0.4
PCI host bridge /pci@30000000 ranges:
IO 0x5ff00000..0x5fffffff -> 0x00000000
MEM 0x50000000..0x5effffff -> 0x00000000
MEM 0x4000000000..0x407fffffff -> 0x20000000
MEM 0x4080000000..0x40ffffffff -> 0xa0000000
XpressRICH3-AXI PCIe Host Bridge 4x link negotiated (gen 2), maxpayload 256,
maxreqsize 1024
pcie-xr3 7ff30000.pci: PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [bus 00-ff]
pci_bus 0000:00: root bus resource [io 0x0000-0xfffff]
pci_bus 0000:00: root bus resource [mem 0x50000000-0x5effffff] (bus address
[0x00000000-0x0effffff])
pci_bus 0000:00: root bus resource [mem 0x4000000000-0x407fffffff pref] (bus
address [0x20000000-0x9fffffff])
pci_bus 0000:00: root bus resource [mem 0x4080000000-0x40ffffffff] (bus address
[0xa0000000-0x11fffffff])
pci 0000:00:00.0: [1556:1100] type 01 class 0xff0000
pci 0000:00:00.0: reg 0x10: [mem 0x50000000-0x50003fff 64bit pref]
pci 0000:00:00.0: supports D1 D2
pci 0000:00:00.0: PME# supported from D0 D1 D2 D3hot D3cold
pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
pci 0000:01:00.0: [111d:8090] type 01 class 0x060400
pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
pci 0000:01:00.0: of_irq_parse_pci() failed with rc=-19
pci 0000:01:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
pci 0000:02:01.0: [111d:8090] type 01 class 0x060400
pci 0000:02:01.0: PME# supported from D0 D3hot D3cold
pci 0000:02:01.0: of_irq_parse_pci() failed with rc=-19
pci 0000:02:02.0: [111d:8090] type 01 class 0x060400
pci 0000:02:02.0: PME# supported from D0 D3hot D3cold
pci 0000:02:02.0: of_irq_parse_pci() failed with rc=-19
pci 0000:02:03.0: [111d:8090] type 01 class 0x060400
pci 0000:02:03.0: PME# supported from D0 D3hot D3cold
pci 0000:02:03.0: of_irq_parse_pci() failed with rc=-19
pci 0000:02:0c.0: [111d:8090] type 01 class 0x060400
pci 0000:02:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
pci 0000:02:02.0: bridge configuration invalid ([bus 00-00]), reconfiguring
pci 0000:02:03.0: bridge configuration invalid ([bus 00-00]), reconfiguring
pci 0000:02:0c.0: bridge configuration invalid ([bus 00-00]), reconfiguring
pci 0000:02:10.0: bridge configuration invalid ([bus 00-00]), reconfiguring
pci 0000:02:1f.0: bridge configuration invalid ([bus 00-00]), reconfiguring
pci 0000:03:00.0: [1095:3132] type 00 class 0x018000
pci 0000:03:00.0: reg 0x10: [mem 0x50000000-0x5000007f 64bit]
pci 0000:03:00.0: reg 0x18: [mem 0x50000000-0x50003fff 64bit]
pci 0000:03:00.0: reg 0x20: [io 0x0000-0x007f]
pci 0000:03:00.0: reg 0x30: [mem 0x50000000-0x5007ffff pref]
pci 0000:03:00.0: supports D1 D2
pci 0000:03:00.0: disabling ASPM on pre-1.1 PCIe device. You can enable it with
'pcie_aspm=force'11:07 AM
pci_bus 0000:03: busn_res: [bus 03-ff] end is updated to 03
pci 0000:04:00.0: [16c3:abcd] type 00 class 0x0c0330
pci 0000:04:00.0: reg 0x10: [mem 0x50000000-0x500fffff 64bit]
pci 0000:04:00.0: reg 0x30: [mem 0x50000000-0x5000ffff pref]
pci 0000:04:00.0: supports D1
pci 0000:04:00.0: PME# supported from D0 D1 D3hot D3cold
pci_bus 0000:04: busn_res: [bus 04-ff] end is updated to 04
pci_bus 0000:05: busn_res: [bus 05-ff] end is updated to 05
pci_bus 0000:06: busn_res: [bus 06-ff] end is updated to 06
pci_bus 0000:07: busn_res: [bus 07-ff] end is updated to 07
pci 0000:08:00.0: [11ab:4380] type 00 class 0x020000
pci 0000:08:00.0: reg 0x10: [mem 0x50000000-0x50003fff 64bit]
pci 0000:08:00.0: reg 0x18: [io 0x0000-0x00ff]
pci 0000:08:00.0: supports D1 D2
pci 0000:08:00.0: PME# supported from D0 D1 D2 D3hot D3cold
pci_bus 0000:08: busn_res: [bus 08-ff] end is updated to 08
pci_bus 0000:02: busn_res: [bus 02-ff] end is updated to 08
pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 08
pcie-xr3 7ff30000.pci: Unable to locate msi-parent node.
dma-pl330 7ff00000.dma: Loaded driver for PL330 DMAC-341330
dma-pl330 7ff00000.dma: DBUFF-1024x16bytes Num_Chans-8 Num_Peri-8
Num_Events-8
In our initial test, despite the previous failure messages we were able to see
the PCI bus and devices (through lspci command) where you can see Synopsys
board on 04:00.0:
00:00.0 PCI bridge: PLDA PCI Express Core Reference Design (rev 01)
01:00.0 PCI bridge: Integrated Device Technology, Inc. [IDT] Device 8090 (rev 02)
02:01.0 PCI bridge: Integrated Device Technology, Inc. [IDT] Device 8090 (rev 02)
02:02.0 PCI bridge: Integrated Device Technology, Inc. [IDT] Device 8090 (rev 02)
02:03.0 PCI bridge: Integrated Device Technology, Inc. [IDT] Device 8090 (rev 02)
02:0c.0 PCI bridge: Integrated Device Technology, Inc. [IDT] Device 8090 (rev 02)
02:10.0 PCI bridge: Integrated Device Technology, Inc. [IDT] Device 8090 (rev 02)
02:1f.0 PCI bridge: Integrated Device Technology, Inc. [IDT] Device 8090 (rev 02)
03:00.0 Mass storage controller: Silicon Image, Inc. SiI 3132 Serial ATA Raid II
Controller (rev 01)
04:00.0 USB controller: Synopsys, Inc. Device abcd (rev 01)
08:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8057 PCI-E Gigabit
Ethernet Controller
But after several driver initialization failures we checked that 03:00.0,
04:00.0 and 08:00.0 PCI devices are pointing to the same base address:
03:00.0 Mass storage controller: Silicon Image, Inc. SiI 3132 Serial ATA Raid II
Controller (rev 01)
Subsystem: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller
Flags: fast devsel, IRQ 36
Memory at 50000000 (64-bit, non-prefetchable) [disabled] [size=128]
Memory at 50000000 (64-bit, non-prefetchable) [disabled] [size=16K]
I/O ports at <unassigned> [disabled] [size=128]
[virtual] Expansion ROM at 50000000 [disabled] [size=512K]
Capabilities: [54] Power Management version 2
Capabilities: [5c] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [70] Express Legacy Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
04:00.0 USB controller: Synopsys, Inc. Device abcd (rev 01) (prog-if 30 [XHCI])
Subsystem: Synopsys, Inc. Device 0124
Flags: bus master, fast devsel, latency 0, IRQ 37
Memory at 50000000 (64-bit, non-prefetchable) [size=1M]
[virtual] Expansion ROM at 50000000 [disabled] [size=64K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
08:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8057 PCI-E Gigabit
Ethernet Controller
Subsystem: Marvell Technology Group Ltd. 88E8057 PCI-E Gigabit Ethernet
Controller
Flags: fast devsel, IRQ 38
Memory at 50000000 (64-bit, non-prefetchable) [disabled] [size=16K]
I/O ports at <unassigned> [disabled] [size=256]
Capabilities: [48] Power Management version 3
Capabilities: [5c] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [c0] Express Legacy Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [130] Device Serial Number 00-00-00-00-00-00-00-00
I tried also to read a register from our USB Controller (0xc120) though devmem
(provided by Busybox) using the base address 0x50000000 + 0xc120 offset and the
result is a segmentation fault which is not normal.
In our opinion the PCI has problems in the initialization and obviously that
reflects in its memory mapping.
I would like to know if this is a known issue and what should we do to overcome it.
Thanks,
Joao Pinto
IMPORTANT NOTICE: This email message, which includes any attachments, may
contain confidential, proprietary and/or privileged information for the sole use
of the intended recipient. Any unauthorized review, use, copying, disclosure or
distribution is prohibited. If you are not the intended recipient, please
immediately contact the sender by reply email and permanently destroy the
original and any copies of this message. Thank you.
Hi Thomas/Daniel,
I have incorporated all the improvements Daniel suggested on V1 and so
here is V2.
The first patch allows set-state callbacks to be optional, otherwise it
leads to unnecessary noop callbacks for drivers which don't want to
implement them. Over that, these noop-callbacks result in full function
calls for nothing really useful.
Rest of the series converts few clockevent drivers to the new set-state
interface. This would enable these drivers to use new states (like:
ONESHOT_STOPPED, etc.) of a clockevent device (if required), as the
set-mode interface is marked obsolete now and wouldn't be expanded to
handle new states.
Once all the drivers are migrated to the new interface in future, we can
remove the code supporting '->mode' in clockevents core.
Drivers converted in this series are selected based on the diff they
generate. These are different diffs we shall have for most of the
drivers and any suggestions/improvements for these patches will be
applied to other drivers as well.
This is based of latest tip/master from few days back due to dependency
on clockevent_state_*() helpers.
Only the first patch is tested on hardware, others are ONLY compile
tested.
V1->V2:
- New commit: 1/7 (Daniel)
- Added all Acks from Daniel
- Updated 2/7 to return 0 directly from timer_shutdown()
- Naming fixes suggested for kona driver (Ray Jui)
- Minor changes in commit logs
- Not adding noop-callbacks
Cc: Andres Salomon <dilinger(a)queued.net>
Cc: bcm-kernel-feedback-list(a)broadcom.com
Cc: Florian Fainelli <f.fainelli(a)gmail.com>
Cc: Lee Jones <lee(a)kernel.org>
Cc: Magnus Damm <magnus.damm(a)gmail.com>
Cc: Marc Zyngier <marc.zyngier(a)arm.com>
Cc: Maxime Coquelin <maxime.coquelin(a)st.com>
Cc: Patrice Chotard <patrice.chotard(a)st.com>
Cc: Ray Jui <rjui(a)broadcom.com>
Cc: Scott Branden <sbranden(a)broadcom.com>
Cc: Srinivas Kandagatla <srinivas.kandagatla(a)gmail.com>
Cc: Stephen Warren <swarren(a)wwwdotorg.org>
Viresh Kumar (7):
clockevents: Allow set-state callbacks to be optional
clocksource: arm_arch_timer: Migrate to new 'set-state' interface
clocksource: arm_global_timer: Migrate to new 'set-state' interface
clocksource: bcm2835: Migrate to new 'set-state' interface
clocksource: bcm_kona: Migrate to new 'set-state' interface
clocksource: cs5535: Migrate to new 'set-state' interface
clocksource: em_sti: Migrate to new 'set-state' interface
drivers/clocksource/arm_arch_timer.c | 52 ++++++++++++++--------------------
drivers/clocksource/arm_global_timer.c | 37 +++++++++++-------------
drivers/clocksource/bcm2835_timer.c | 16 -----------
drivers/clocksource/bcm_kona_timer.c | 17 ++++-------
drivers/clocksource/cs5535-clockevt.c | 24 +++++++++-------
drivers/clocksource/em_sti.c | 39 +++++++++----------------
kernel/time/clockevents.c | 24 ++++++----------
7 files changed, 81 insertions(+), 128 deletions(-)
--
2.4.0