Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
2f7ee7c6
Commit
2f7ee7c6
authored
Jan 31, 2006
by
David S. Miller
Committed by
David S. Miller
Mar 20, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[SPARC64]: Increase swapper_tsb size to 32K.
Signed-off-by:
David S. Miller
<
davem@davemloft.net
>
parent
a8b900d8
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
16 additions
and
20 deletions
+16
-20
arch/sparc64/kernel/head.S
arch/sparc64/kernel/head.S
+6
-6
arch/sparc64/kernel/vmlinux.lds.S
arch/sparc64/kernel/vmlinux.lds.S
+0
-3
arch/sparc64/mm/tsb.c
arch/sparc64/mm/tsb.c
+0
-8
include/asm-sparc64/tsb.h
include/asm-sparc64/tsb.h
+10
-3
No files found.
arch/sparc64/kernel/head.S
View file @
2f7ee7c6
...
...
@@ -484,16 +484,16 @@ sparc64_boot_end:
/*
*
The
following
skip
makes
sure
the
trap
table
in
ttable
.
S
is
aligned
*
on
a
32
K
boundary
as
required
by
the
v9
specs
for
TBA
register
.
*
*
We
align
to
a
32
K
boundary
,
then
we
have
the
32
K
kernel
TSB
,
*
then
the
32
K
aligned
trap
table
.
*/
1
:
.
skip
0x4000
+
_start
-
1
b
#ifdef CONFIG_SBUS
/*
This
is
just
a
hack
to
fool
make
depend
config
.
h
discovering
strategy
:
As
the
.
S
files
below
need
config
.
h
,
but
make
depend
does
not
find
it
for
them
,
we
include
config
.
h
in
head
.
S
*/
#endif
.
globl
swapper_tsb
swapper_tsb
:
.
skip
(
32
*
1024
)
!
0
x0000000000408000
...
...
arch/sparc64/kernel/vmlinux.lds.S
View file @
2f7ee7c6
...
...
@@ -43,9 +43,6 @@ SECTIONS
__ex_table
:
{
*(
__ex_table
)
}
__stop___ex_table
=
.
;
.
=
ALIGN
(
8192
)
;
swapper_tsb
=
.
;
.
+=
8192
;
.
=
ALIGN
(
8192
)
;
__init_begin
=
.
;
.
init.text
:
{
...
...
arch/sparc64/mm/tsb.c
View file @
2f7ee7c6
...
...
@@ -12,14 +12,6 @@
#include <asm/pgtable.h>
#include <asm/tsb.h>
/* We use an 8K TSB for the whole kernel, this allows to
* handle about 4MB of modules and vmalloc mappings without
* incurring many hash conflicts.
*/
#define KERNEL_TSB_SIZE_BYTES 8192
#define KERNEL_TSB_NENTRIES \
(KERNEL_TSB_SIZE_BYTES / sizeof(struct tsb))
extern
struct
tsb
swapper_tsb
[
KERNEL_TSB_NENTRIES
];
static
inline
unsigned
long
tsb_hash
(
unsigned
long
vaddr
,
unsigned
long
nentries
)
...
...
include/asm-sparc64/tsb.h
View file @
2f7ee7c6
...
...
@@ -143,6 +143,14 @@
add REG1, (3 * 8), REG1; \
99:
/* We use a 32K TSB for the whole kernel, this allows to
* handle about 16MB of modules and vmalloc mappings without
* incurring many hash conflicts.
*/
#define KERNEL_TSB_SIZE_BYTES (32 * 1024)
#define KERNEL_TSB_NENTRIES \
(KERNEL_TSB_SIZE_BYTES / 16)
/* Do a kernel TSB lookup at tl>0 on VADDR+TAG, branch to OK_LABEL
* on TSB hit. REG1, REG2, REG3, and REG4 are used as temporaries
* and the found TTE will be left in REG1. REG3 and REG4 must
...
...
@@ -150,12 +158,11 @@
*
* VADDR and TAG will be preserved and not clobbered by this macro.
*/
/* XXX non-8K base page size support... */
#define KERN_TSB_LOOKUP_TL1(VADDR, TAG, REG1, REG2, REG3, REG4, OK_LABEL) \
sethi %hi(swapper_tsb), REG1; \
or REG1, %lo(swapper_tsb), REG1; \
srlx VADDR,
13
, REG2; \
and REG2, (
512
- 1), REG2; \
srlx VADDR,
PAGE_SHIFT
, REG2; \
and REG2, (
KERNEL_TSB_NENTRIES
- 1), REG2; \
sllx REG2, 4, REG2; \
add REG1, REG2, REG2; \
ldda [REG2] ASI_NUCLEUS_QUAD_LDD, REG3; \
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment