Re: [PATCH] fast path for rdhwr emulation for TLS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Atsushi Nemoto wrote:
On Fri, 08 Sep 2006 18:39:08 +0100, Nigel Stephens <nigel@xxxxxxxx> wrote:
I asked on GCC bugzilla a few days ago but can not got feedback yet.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28126
In spite of the GCC issue, is this patch now at the point where it could
be applied, or at least queued?

GCC 4.2 does not put RDHWR in delay slot now.  Also, there is a
"hackish fix" to prevent gcc move a RDHWR outside of a conditional
(from Richard Sandiford).

For kernel side, my patch can be still applied to current git tree as
is.

But I'm still looking for better solution (silver bullet?) for
cpu_has_vtag_icache case.

How about something like this (and do not touch tlbex.c)?

	LEAF(handle_ri_rdhwr_vivt)
	.set	push
	.set	noat
	.set	noreorder
	/* check if TLB contains a entry for EPC */
	MFC0	K1, CP0_ENTRYHI
	andi	k1, ASID_MASK
	MFC0	k0, CP0_EPC
	andi	k0, PAGE_MASK << 1
	or	k1, k0
	MTC0	k1, CP0_ENTRYHI
	tlbp
	mfc0	k1, CP0_INDEX
	bltz	k1, handle_ri	/* slow path */
	 nop
	/* fall thru */
	LEAF(handle_ri_rdhwr)

I'm wondering if this could work on CONFIG_MIPS_MT_SMTC case...


No, that wouldn't be reliable for CONFIG_MIPS_MT_SMTC, but then again the only CPU which currently runs SMTC has VIPT caches

Nigel


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux