Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 02 Jan 2006 20:03:47 +0100
From:      Alexander Leidinger <Alexander@Leidinger.net>
To:        Divacky Roman <xdivac02@stud.fit.vutbr.cz>
Cc:        current@freebsd.org
Subject:   Re: AMD cache values for page colouring
Message-ID:  <20060102200347.2bumr7okkkgossww@netchild.homeip.net>
In-Reply-To: <20060102101653.GA65178@stud.fit.vutbr.cz>
References:  <20060102101653.GA65178@stud.fit.vutbr.cz>

next in thread | previous in thread | raw e-mail | index | archive | help
Divacky Roman <xdivac02@stud.fit.vutbr.cz> wrote:

[no cachesize detection]
> my CPU is:
> CPU: AMD Athlon(tm) XP 2500+ (1834.88-MHz 686-class CPU)
> Origin = "AuthenticAMD"  Id = 0x6a0  Stepping = 0
> Features=0x383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
> AMD Features=0xc0400800<SYSCALL,MMX+,3DNow+,3DNow>

So the AMD64 code works (on AMD processors) but the IA32 (on AMD) fails.
Either I did something completely wrong, or it's a small typo I do overlook
(tomatoes on the eyes...). Can someone with a little bit of AMD feature
detection knowledge have a look at:
---snip---
	 static void
  	 setPQL2_AMD(int *const size, int *const ways) {
  	         if (cpu_exthigh >= 0x80000006) {
  	                 u_int regs[4];

  	                 do_cpuid(0x80000006, regs);
  	                 *size = regs[2] >> 16;
  	                 *ways = (regs[2] >> 12) & 0x0f;
  	                 if(*ways == 255)                /* fully associative */
  	                         *ways = 1;
  	         }
  	 }



	 void
  	 setPQL2(int *const size, int *const ways)
  	 {
  	         if (strcmp(cpu_vendor, "AuthenticAMD") == 0)
  	                 setPQL2_AMD(size, ways);
  	         else if (strcmp(cpu_vendor, "GenuineIntel") == 0)
  	                 setPQL2_INTEL(size, ways);
	 }
---snip---
This is from sys/i386/i386/identcpu.c.

Bye,
Alexander.

-- 
http://www.Leidinger.net  Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org     netchild @ FreeBSD.org  : PGP ID = 72077137
When we are planning for posterity, we ought to remember that virtue is
not hereditary.
		-- Thomas Paine





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060102200347.2bumr7okkkgossww>