- 28 Apr, 2005 14 commits
-
-
David Mosberger-Tang authored
Yanmin Zhang pointed out a sequence problem when saving the psr. David Mosberger provided this patch (which gave up a cycle). Signed-off-by:
Tony Luck <tony.luck@intel.com>
-
David Mosberger-Tang authored
This patch switches the srlz.i in ia64_leave_kernel() to srlz.d. As per architecture manual, the former is needed only to ensure that the clearing of PSR.IC is seen by the VHPT for subsequent instruction fetches. However, since the remainder of the code (up to and including the RFI instruction) is mapped by a pinned TLB entry, there is no chance of an iTLB miss and we don't care whether or not the VHPT sees PSR.IC cleared. Since srlz.d is substantially cheaper than srlz.i, this should shave off a few cycles off the interrupt path (unverified though; I'm not setup to measure this at the moment). Signed-off-by:
David Mosberger-Tang <davidm@hpl.hp.com> Signed-off-by:
Tony Luck <tony.luck@intel.com>
-
David Mosberger-Tang authored
This patch changes comments & formatting only. There is no code change. Signed-off-by:
David Mosberger-Tang <davidm@hpl.hp.com> Signed-off-by:
Tony Luck <tony.luck@intel.com>
-
David Mosberger-Tang authored
Improvements come from eliminating srlz.i, not scheduling AR/CR-reads too early (while there are others still pending), scheduling the backing-store switch as well as possible, splitting the BBB bundle into a MIB/MBB pair. Why is it safe to eliminate the srlz.i? Observe that we used to clear bits ~PSR_PRESERVED_BITS in PSR.L. Since PSR_PRESERVED_BITS==PSR.{UP,MFL,MFH,PK,DT,PP,SP,RT,IC}, we ended up clearing PSR.{BE,AC,I,DFL,DFH,DI,DB,SI,TB}. However, PSR.BE : already is turned off in __kernel_syscall_via_epc() PSR.AC : don't care (kernel normally turns PSR.AC on) PSR.I : already turned off by the time fsys_bubble_down gets invoked PSR.DFL: always 0 (kernel never turns it on) PSR.DFH: don't care --- kernel never touches f32-f127 on its own initiative PSR.DI : always 0 (kernel never turns it on) PSR.SI : always 0 (kernel never turns it on) PSR.DB : don't care --- kernel never enables kernel-level breakpoints PSR.TB : must be 0 already; if it wasn't zero on entry to __kernel_syscall_via_epc, the branch to fsys_bubble_down will trigger a taken branch; the taken-trap-handler then converts the syscall into a break-based system-call. In other words: all the bits we're clearying are either 0 already or are don't cares! Thus, we don't have to write PSR.L at all and we don't have to do a srlz.i either. Good for another ~20 cycle improvement for EPC-based heavy-weight syscalls. Signed-off-by:
David Mosberger-Tang <davidm@hpl.hp.com> Signed-off-by:
Tony Luck <tony.luck@intel.com>
-
David Mosberger-Tang authored
Two other very minor changes: use "mov.i" instead of "mov" for reading ar.pfs (for clarity; doesn't affect the code at all). Also, predicate the load of r14 for consistency. Signed-off-by:
David Mosberger-Tang <davidm@hpl.hp.com> Signed-off-by:
Tony Luck <tony.luck@intel.com>
-
David Mosberger-Tang authored
Avoid some stalls, which is good for about 2 cycles when invoking a light-weight handler. When invoking a heavy-weight handler, this helps by about 7 cycles, with most of the improvement coming from the improved branch-prediction achieved by splitting the BBB bundle into two MIB bundles. Signed-off-by:
David Mosberger-Tang <davidm@hpl.hp.com> Signed-off-by:
Tony Luck <tony.luck@intel.com>
-
David Mosberger-Tang authored
This patch reorganizes break_fault() to optimistically assume that a system-call is being performed from user-space (which is almost always the case). If it turns out that (a) we're not being called due to a system call or (b) we're being called from within the kernel, we fixup the no-longer-valid assumptions in non_syscall() and .break_fixup(), respectively. With this approach, there are 3 major phases: - Phase 1: Read various control & application registers, in particular the current task pointer from AR.K6. - Phase 2: Do all memory loads (load system-call entry, load current_thread_info()->flags, prefetch kernel register-backing store) and switch to kernel register-stack. - Phase 3: Call ia64_syscall_setup() and invoke syscall-handler. Good for 26-30 cycles of improvement on break-based syscall-path. Signed-off-by:
David Mosberger-Tang <davidm@hpl.hp.com> Signed-off-by:
Tony Luck <tony.luck@intel.com>
-
David Mosberger-Tang authored
Signed-off-by:
David Mosberger-Tang <davidm@hpl.hp.com> Signed-off-by:
Tony Luck <tony.luck@intel.com>
-
David Mosberger-Tang authored
Reschedule code to read ar.bsp as early as possible. To enable this, don't bother clearing some of the registers when we're returning to kernel stacks. Also, instead of trying to support the pNonSys case (which makes no sense), do a bugcheck instead (with break 0). Finally, remove a clear of r14 which is a left-over from the previous patch. Signed-off-by:
David Mosberger-Tang <davidm@hpl.hp.com> Signed-off-by:
Tony Luck <tony.luck@intel.com>
-
David Mosberger-Tang authored
Using stf8 seemed like a clever idea at the time, but stf8 forces the cache-line to be invalidated in the L1D (if it happens to be there already). This patch eliminates a guaranteed L1D cache-miss and, by itself, is good for a 1-2 cycle improvement for heavy-weight syscalls. Signed-off-by:
David Mosberger-Tang <davidm@hpl.hp.com> Signed-off-by:
Tony Luck <tony.luck@intel.com>
-
David Mosberger-Tang authored
Why is this a good idea? Clearing b7 to 0 is guaranteed to do us no good and writing it with __kernel_syscall_via_epc() yields a 6 cycle improvement _if_ the application performs another EPC-based system- call without overwriting b7, which is not all that uncommon. Well worth the minimal cost of 1 bundle of code. Signed-off-by:
David Mosberger-Tang <davidm@hpl.hp.com> Signed-off-by:
Tony Luck <tony.luck@intel.com>
-
David Mosberger-Tang authored
Decreases syscall overhead by approximately 6 cycles. Signed-off-by:
David Mosberger-Tang <davidm@hpl.hp.com> Signed-off-by:
Tony Luck <tony.luck@intel.com>
-
David Mosberger-Tang authored
This by itself is good for a 1-2 cycle speed up. Effect is bigger when combined with the later patches. Signed-off-by:
David Mosberger-Tang <davidm@hpl.hp.com> Signed-off-by:
Tony Luck <tony.luck@intel.com>
-
David Mosberger-Tang authored
Signed-off-by:
David Mosberger-Tang <davidm@hpl.hp.com> Signed-off-by:
Tony Luck <tony.luck@intel.com>
-
- 27 Apr, 2005 1 commit
-
- 26 Apr, 2005 25 commits
-
-
Marcelo Tosatti authored
Call pci_enable_device() before looking at IRQ and resources, and pci_disable_device() when shutting the interface down. The driver requires this fix or the "pci=routeirq" workaround on 2.6.10 and later kernels. Reported and tested by Artur Lipowski. From: Bjorn Helgaas <bjorn.helgaas@hp.com> Signed-off-by:
Marcelo Tosatti <marcelo.tosatti@cyclades.com> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
Al Viro authored
Signed-off-by:
Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
Al Viro authored
size_t is zu, ssize_t is zd... Signed-off-by:
Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
Martin Hicks authored
This is a fix to the pgtable_quicklist code. There is a GFP_KERNEL allocation in pgtable_quicklist_alloc(), which spews the usual warnings if the kernel is under heavy VM pressure and the reclaim code is invoked. re-enable preempt before we allocate the new page. This patch is against 2.6.12-rc2-mm2 Signed-off-by:
Martin Hicks <mort@sgi.com> Signed-off-by: Tony Luck <tony.luckintel.com>
-
Linus Torvalds authored
-
Linus Torvalds authored
-
Al Viro authored
Signed-off-by:
Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
Al Viro authored
Signed-off-by:
Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
Al Viro authored
->pretcode in struct rt_sigframe is a userland pointer (and already treated as such by code using that field). Signed-off-by:
Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
Al Viro authored
NULL noise in sbus scsi drivers got missed Signed-off-by:
Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
Al Viro authored
write_reg_le32() and read_reg_le32() expect iomem pointers... Signed-off-by:
Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
Al Viro authored
Signed-off-by:
Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
Al Viro authored
trivial iomem annotations + memset() replaced with memset_io() in a place that deals with ioremapped area. Signed-off-by:
Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
Al Viro authored
Signed-off-by:
Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
Al Viro authored
Signed-off-by:
Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
Al Viro authored
This beast is pmac-only; moreover, it won't build on other subarchitectures. Signed-off-by:
Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
Russell King authored
Convert 8250_hp300 to use serial8250_register_port() and serial8250_unregister_port(). Tested by Kars de Jong, 4/4/2005. Signed-off-by:
Russell King <rmk@arm.linux.org.uk>
-
Russell King authored
With unlikely() there's no need for the error path to use gotos. Signed-off-by:
Russell King <rmk@arm.linux.org.uk>
-
Russell King authored
Ensure ARM serial driver error paths are marked with the unlikely() compiler hint. Signed-off-by:
Russell King <rmk@arm.linux.org.uk>
-
Russell King authored
Move common includes to entry-header, and file specific includes to the relevant file. Signed-off-by:
Russell King <rmk@arm.linux.org.uk>
-
Russell King authored
Assembly macros are pointless if they're only used once. Move them inline. Signed-off-by:
Russell King <rmk@arm.linux.org.uk>
-
Russell King authored
PT_TRACESYS is unused, remove it. Signed-off-by:
Russell King <rmk@arm.linux.org.uk>
-
Russell King authored
SVC_MODE reflects the MODE_SVC definition in asm/ptrace.h. Use the asm/ptrace.h definition instead, and remove SVC_MODE. Signed-off-by:
Russell King <rmk@arm.linux.org.uk>
-
Russell King authored
Don't define our own local constants, but use those already defined in asm/unistd.h instead. Signed-off-by:
Russell King <rmk@arm.linux.org.uk>
-