* [Qemu-devel] SPARC - host support in vl.c
@ 2004-08-31 22:04 Bochnig, Martin
2004-08-31 22:14 ` Falk Hueffner
2004-08-31 23:24 ` [Qemu-devel] The very best I can get on SPARC Bochnig, Martin
0 siblings, 2 replies; 7+ messages in thread
From: Bochnig, Martin @ 2004-08-31 22:04 UTC (permalink / raw)
To: qemu-devel
Here my patch suggestions to add SPARC host support to vl.c :
#elif defined(__sparc__)
/* Derived from: "m68k updates #2" by Richard Zidlicky
"crude hack to get some sort of rdtsc support" */
#include <sys/time.h>
static int64_t cputicks=0;
static struct timeval lastcptcall={0,0};
// assume 5 MHz Pentium, min 80 ticks between rdtsc calls
int64_t cpu_get_real_ticks(void)
{
struct timeval tp;
gettimeofday(&tp,(void*)0);
if (tp.tv_sec == lastcptcall.tv_sec &&
tp.tv_usec == lastcptcall.tv_usec ){
cputicks += 1;
} else {
cputicks=0;
lastcptcall=tp;
}
return ((int64_t)tp.tv_sec*1000000+tp.tv_usec)*5+cputicks;
}
#elif defined(__sparc64__)
/* I'm not sure it was worth it, personally.
*
*UltraSparc:
*
* unsigned long x;
* asm volatile ("rd %tick, %0" : "=r"(x));
*
* Earlier Sparcs do not have this feature.
*
*
*/
int64_t cpu_get_real_ticks(void)
{
int64_t val;
asm volatile ("rd %%tick, %0" : "=r"(val));
return val;
}
#else
#error unsupported CPU
#endif
Any ideas would be appreciated.
Martin
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [Qemu-devel] SPARC - host support in vl.c 2004-08-31 22:04 [Qemu-devel] SPARC - host support in vl.c Bochnig, Martin @ 2004-08-31 22:14 ` Falk Hueffner 2004-08-31 22:24 ` Bochnig, Martin 2004-09-01 15:44 ` Richard Zidlicky 2004-08-31 23:24 ` [Qemu-devel] The very best I can get on SPARC Bochnig, Martin 1 sibling, 2 replies; 7+ messages in thread From: Falk Hueffner @ 2004-08-31 22:14 UTC (permalink / raw) To: bochnig; +Cc: qemu-devel "Bochnig, Martin" <mb1x@gmx.com> writes: > Here my patch suggestions to add SPARC host support to vl.c : > > #elif defined(__sparc__) Why conditionalize this to __sparc__? Seems like a generally sensible fallback. -- Falk ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] SPARC - host support in vl.c 2004-08-31 22:14 ` Falk Hueffner @ 2004-08-31 22:24 ` Bochnig, Martin 2004-08-31 22:41 ` Falk Hueffner 2004-09-01 15:44 ` Richard Zidlicky 1 sibling, 1 reply; 7+ messages in thread From: Bochnig, Martin @ 2004-08-31 22:24 UTC (permalink / raw) To: qemu-devel >>#elif defined(__sparc__) > > > Why conditionalize this to __sparc__? Seems like a generally sensible > fallback. > Huh? It is to be conditionalized among powerpc, i386, x86_64 and so. SPARC32's didn't support the UltraSPARC specific %tick instruction. What do you mean? -- Martin ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] SPARC - host support in vl.c 2004-08-31 22:24 ` Bochnig, Martin @ 2004-08-31 22:41 ` Falk Hueffner 2004-09-01 7:57 ` Bochnig, Martin 0 siblings, 1 reply; 7+ messages in thread From: Falk Hueffner @ 2004-08-31 22:41 UTC (permalink / raw) To: bochnig; +Cc: qemu-devel "Bochnig, Martin" <mb1x@gmx.com> writes: >>>#elif defined(__sparc__) >> Why conditionalize this to __sparc__? Seems like a generally sensible >> fallback. > > It is to be conditionalized among powerpc, i386, x86_64 and so. > > SPARC32's didn't support the UltraSPARC specific %tick instruction. > > What do you mean? I mean that what is now for __sparc__ should just be a global #else, since it should work everywhere if a more specialized version is not available. -- Falk ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] SPARC - host support in vl.c 2004-08-31 22:41 ` Falk Hueffner @ 2004-09-01 7:57 ` Bochnig, Martin 0 siblings, 0 replies; 7+ messages in thread From: Bochnig, Martin @ 2004-09-01 7:57 UTC (permalink / raw) To: qemu-devel Falk Hueffner wrote: > I mean that what is now for __sparc__ should just be a global #else, > since it should work everywhere if a more specialized version is not > available. > Oh, of course - that's true. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] SPARC - host support in vl.c 2004-08-31 22:14 ` Falk Hueffner 2004-08-31 22:24 ` Bochnig, Martin @ 2004-09-01 15:44 ` Richard Zidlicky 1 sibling, 0 replies; 7+ messages in thread From: Richard Zidlicky @ 2004-09-01 15:44 UTC (permalink / raw) To: qemu-devel On Wed, Sep 01, 2004 at 12:14:47AM +0200, Falk Hueffner wrote: > "Bochnig, Martin" <mb1x@gmx.com> writes: > > > Here my patch suggestions to add SPARC host support to vl.c : > > > > #elif defined(__sparc__) > > Why conditionalize this to __sparc__? Seems like a generally sensible > fallback. Fabrice had plans to do this properly, by counting executed instructions. Any idea what happened with this plan? Richard ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Qemu-devel] The very best I can get on SPARC 2004-08-31 22:04 [Qemu-devel] SPARC - host support in vl.c Bochnig, Martin 2004-08-31 22:14 ` Falk Hueffner @ 2004-08-31 23:24 ` Bochnig, Martin 1 sibling, 0 replies; 7+ messages in thread From: Bochnig, Martin @ 2004-08-31 23:24 UTC (permalink / raw) To: qemu-devel Please see my recent postings first. The very best I can get on SPARC (compiled on UltraSPARC IIi for SPARC32) : debian:~/QEMU/qemu-0.6.0# uname -a Linux debian 2.4.18 #2 Thu Apr 11 14:37:17 EDT 2002 sparc64 unknown debian:~/QEMU/qemu-0.6.0# debian:~/QEMU/qemu-0.6.0# file /usr/local/bin/qemu /usr/local/bin/qemu: ELF 32-bit MSB executable, SPARC, version 1 (SYSV), statically linked, stripped debian:~/QEMU/qemu-0.6.0# debian:~/QEMU/qemu-0.6.0# /usr/local/bin/qemu -nographic -hda hd10meg.img -kernel vmlinuz-2.6.5-1.358 -append "console=ttyS0 root=/dev/hda sb=0x220,5,1,5 ide2=noprobe ide3=noprobe ide4=noprobe ide5=noprobe" warning: could not open /dev/net/tun: no virtual network emulation Linux version 2.6.5-1.358 (bhcompile@bugs.build.redhat.com) (gcc version 3.3.3 20040412 (Red Hat Linux 3.3.3-7)) #1 Sat May 8 09:04:50 EDT 2004 BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009fc00 (usable) BIOS-e820: 0000000000100000 - 0000000008000000 (usable) 0MB HIGHMEM available. 128MB LOWMEM available. zapping low mappings. On node 0 totalpages: 32768 DMA zone: 4096 pages, LIFO batch:1 Normal zone: 28672 pages, LIFO batch:7 HighMem zone: 0 pages, LIFO batch:1 DMI not present. ACPI: Unable to locate RSDP Built 1 zonelists Kernel command line: console=ttyS0 root=/dev/hda sb=0x220,5,1,5 ide2=noprobe ide3=noprobe ide4=noprobe ide5=noprobe ide_setup: ide2=noprobe ide_setup: ide3=noprobe ide_setup: ide4=noprobe ide_setup: ide5=noprobe mapped 4G/4G trampoline to ffff3000. Initializing CPU#0 CPU 0 irqstacks, hard=02345000 soft=02344000 PID hash table entries: 1024 (order 10: 8192 bytes) Detected 5.036 MHz processor. Using tsc for high-res timesource Console: colour VGA+ 80x25 Losing too many ticks! TSC cannot be used as a timesource. Possible reasons for this are: You're running with Speedstep, You don't have DMA enabled for your hard disk (see hdparm), Incorrect TSC synchronization on an SMP system (see dmesg). Falling back to a sane timesource now. Memory: 126804k/131072k available (1540k kernel code, 3696k reserved, 599k data, 144k init, 0k highmem) Calibrating delay loop... 142.33 BogoMIPS Security Scaffold v1.0.0 initialized SELinux: Initializing. SELinux: Starting in permissive mode There is already a security framework initialized, register_security failed. Failure registering capabilities with the kernel selinux_register_security: Registering secondary module capability Capability LSM initialized Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Mount-cache hash table entries: 512 (order: 0, 4096 bytes) CPU: L1 I cache: 8K CPU: L2 cache: 128K CPU: Intel Pentium Pro stepping 03 Unable to handle kernel paging request at virtual address fffffc01 printing eip: 023180c4 *pde = 00002067 Oops: 0002 [#1] CPU: 0 EIP: 0060:[<023180c4>] Not tainted EFLAGS: 00000246 (2.6.5-1.358) EIP is at check_fpu+0x91/0xcb eax: 0000000d ebx: 02378d00 ecx: 00000000 edx: 000003f8 esi: 0000000d edi: 0000270f ebp: 02349c03 esp: 02317f54 ds: 007b es: 007b ss: 0068 Process swapper (pid: 0, threadinfo=02317000 task=022c5aa0) Stack: 00000060 02191439 021d7b4a 0000000d 00000000 0000000d 022d9380 021d79d4 022d9380 021d79d4 02118726 00000964 fffff69c 00000964 00000964 02118840 00000246 fffff69c 00000246 fffff69c 00000246 02348e8d 00000246 021189cd Call Trace: [<02191439>] __delay+0x9/0xa [<021d7b4a>] serial8250_console_write+0x176/0x1bc [<021d79d4>] serial8250_console_write+0x0/0x1bc [<021d79d4>] serial8250_console_write+0x0/0x1bc [<02118726>] __call_console_drivers+0x36/0x42 [<02118840>] call_console_drivers+0xbe/0xe3 [<021189cd>] printk+0x106/0x113 [<0231cf7f>] print_cpu_info+0x94/0xa8 [<02318176>] check_bugs+0x28/0x50 [<023185f2>] start_kernel+0x154/0x176 Code: db e3 dd 05 a0 ff 32 02 dc 35 a8 ff 32 02 dc 0d a8 ff 32 02 <0>Kernel panic: Attempted to kill the idle task! In idle task - not syncing Killed ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2004-09-01 15:56 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2004-08-31 22:04 [Qemu-devel] SPARC - host support in vl.c Bochnig, Martin 2004-08-31 22:14 ` Falk Hueffner 2004-08-31 22:24 ` Bochnig, Martin 2004-08-31 22:41 ` Falk Hueffner 2004-09-01 7:57 ` Bochnig, Martin 2004-09-01 15:44 ` Richard Zidlicky 2004-08-31 23:24 ` [Qemu-devel] The very best I can get on SPARC Bochnig, Martin
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.