[Qemu-devel] X86-64 and APIC

2005-09-27 Thread Emmanuel Charpentier
Dear List,

Natalia Portillo noticed that XP_64 refused to install due to lack of
APICs. Filip Navara proposed an initial patch, and Fabribe Bellard
proposed :

 I can include the patch with a specific option to enable it. The
 option will disapear when the hack will be known to be stable.

Fabrice then commited (in July) three APIC-related patches ; the current
(0.7.2) documentation does not mention APICs. I was therefore under the
impression that this was a solved issue.

However, trying to use qemu-system-x86_64 (with kqemu) on an AMD64
system (running under Ubuntu AMD 64 with a hand-compiled (with
gcc-3.4.5) kernel) to test XP Pro_64 leads to no installation : the
system complains that it can see no APIC and cannot continue.

Is there an (undocumented) option to enable APIC emulation in this
configuration (qemu-system-x86-64 + kqemu running under Linux 2.6.12 64
bits) ?

Or did I hit an unsupported case ?

Emmanuel Charpentier



___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] X86-64 and APIC

2005-09-27 Thread Filip Navara

Emmanuel Charpentier wrote:


Dear List,

Natalia Portillo noticed that XP_64 refused to install due to lack of
APICs. Filip Navara proposed an initial patch, and Fabribe Bellard
proposed :

 


I can include the patch with a specific option to enable it. The
option will disapear when the hack will be known to be stable.
   



Fabrice then commited (in July) three APIC-related patches ; the current
(0.7.2) documentation does not mention APICs. I was therefore under the
impression that this was a solved issue.

However, trying to use qemu-system-x86_64 (with kqemu) on an AMD64
system (running under Ubuntu AMD 64 with a hand-compiled (with
gcc-3.4.5) kernel) to test XP Pro_64 leads to no installation : the
system complains that it can see no APIC and cannot continue.

Is there an (undocumented) option to enable APIC emulation in this
configuration (qemu-system-x86-64 + kqemu running under Linux 2.6.12 64
bits) ?

Or did I hit an unsupported case ?
 

Sigh, people write me private mails about this every month. The problem 
with Win64 is not APIC, but ACPI (which is used to detect Local APIC 
among other things). I've updated version of my hack and experimental 
ACPI implementation from malc_, but even with these patches it's NOT 
POSSIBLE to install Win64. With all the local patches in my tree I'm 
able to get to the second stage setup, but that's all ... it's way too 
slow for some reason (not just normal slowness, but some bug probably).


- Filip


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] [patch] IDE busmaster DMA support

2005-09-27 Thread Joe Batt
On Mon, 2005-09-26 at 21:48 -0400, John Coiner wrote:
 Can anyone shed light on the potential performance to be realized? For 
 example, how long does a context switch take in the guest? If it takes 
 10ms (one disk seek) then there's probably no benefit to concurrent disk 
 IO. If a context switch takes 1ms, then the guest has opportunity to 
 make forward progress while awaiting an IDE interrupt.

I ran this code to time context switches:

#include sys/time.h
#include time.h
#include unistd.h
#include stdlib.h
#include stdio.h
#include string.h

int main(int argc, char *argv[]) {
  struct timeval start;
  gettimeofday(start, NULL);

  int fd[2];
  pipe(fd);

  int child = fork();

  int i, count = 10;
  char *msg = malloc(2);
  strcpy(msg, m);
  for (i = 0; i  count; i++) {
if (child) {
  if (write(fd[1], msg, 1) != 1)
fprintf(stderr, FAILURE\n);
} else {
  if (read(fd[0], msg, 1) != 1)
fprintf(stderr, FAILURE\n);
}
  }
  struct timeval end;
  gettimeofday(end, NULL);
  printf(%g microseconds/context switch\n, 
 (((end.tv_sec - start.tv_sec) * (double)100) +
end.tv_usec - start.tv_usec)/count);


  return 0;
}


On my dual 2.4 Ghz Xeon, I get the following timings.

host:~  ./yieldtest
2.35418 microseconds/context switch
2.35414 microseconds/context switch

KNOPPIX guest:  ./yieldtest
105.092 microseconds/context switch
105.184 microseconds/context switch

Is that what you are after?

-- 
Joe Batt [EMAIL PROTECTED]



___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] [patch] IDE busmaster DMA support

2005-09-27 Thread Troy Benjegerdes
On Mon, Sep 26, 2005 at 09:48:25PM -0400, John Coiner wrote:
 
 Hi,
 
 Here's another patch to enable IDE DMA:
 
   http://people.brandeis.edu/~jcoiner/qemu_idedma/qemu_dma_patch.html
 
 This patch, like Juergen Lock's earlier patch from which it is derived, 
 replaces the virtual PIIX3 IDE controller with a PIIX4.
 
 It applies cleanly to 0.7.2.
 
 This patch extends the Windows 2000 install hack to work for DMA also -- 
 I installed and ran Windows 2000 with DMA enabled.
 
 It'd be cool if QEMU supported nonblocking disk access -- if it would 
 let the guest resume running currently, while waiting for the disk to 
 finish seeking. This patch is a first step toward concurrent IO, which 
 would probably have to use busmastering DMA transfers to be efficient, 
 if it's going to be efficient at all.
 
 Do people have ideas about how to implement concurrent IO? I have a 
 couple hazy ideas...
 
 Can anyone shed light on the potential performance to be realized? For 
 example, how long does a context switch take in the guest? If it takes 
 10ms (one disk seek) then there's probably no benefit to concurrent disk 
 IO. If a context switch takes 1ms, then the guest has opportunity to 
 make forward progress while awaiting an IDE interrupt.

I would strongly suggest attempting to make use of the Linux Async I/O
support.. this way the data from disk could be placed directly in
address space of the guest OS. 

Personally, I'd love to see nonblocking disk IO. I've tried running Qemu
using a disk image on an AFS filesystem, and having the guest be able to
continue while the filesystem is fetching data from the network would
make things much nicer.


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


[Qemu-devel] [EMAIL PROTECTED];~Be5U1g(B

2005-09-27 Thread info
[EMAIL PROTECTED];~Be5U1g(B

http://1191.jp/Rc/purejewelry/index.html

$B!Z(BPure$B!!(BJewelry$B![(B
[EMAIL PROTECTED],:[EMAIL PROTECTED]:G9b$N=P0)$$$N[EMAIL 
PROTECTED]+Ii$7$F$*$j$^$9!#:#$^$G$N=P0)[EMAIL 
PROTECTED]($O(B75$B!s$rD6$(!$?$/$5$s$N3'MM$+$i$*Ni$NOMm$rD:$$$F$*$j$^$9!#$3$l$+$i$bAGE($JNx$r$$$D$^$G$bB3$1$i$l$k$3$H$r4j$C$F$*$j$^$9!#(B

http://1191.jp/Rc/purejewelry/index.html
---
[EMAIL PROTECTED]'MM$KAGE($J=P0)$$$r4j$C$F$*$j$^$9!#4{:'[EMAIL 
PROTECTED][EMAIL 
PROTECTED]:!$$$D$^$G$bAGE($JNx$r$7$F$$$?$$$H;W$$N$OEvA3$G$9!#$=$3$G![EMAIL 
PROTECTED]'MM$K%5!%S%9NA!J%G!%HBe!%[%F%kBeEy!=P0)$C$?$H$-$KH/@8$9$k$*6b!K$r$*;YJ'$$$7![EMAIL
 PROTECTED]:]$r$7$FD:$1$?$i%9%`!%:$K=P0)$$$,$$k$N$G$O$J$$$G$7$g$$+!)(B
http://deai.ecdrf.com/?himitu
[EMAIL PROTECTED]'MM$K$O?HJ,3NG'Ey$N?3::$,$4$6$$$^$9!#$4N;5$/[EMAIL 
PROTECTED];!#(B
---
[EMAIL PROTECTED]'MM$X!z(B
[EMAIL PROTECTED];W$$$^$9$,!!Z(BPure$B!!([EMAIL PROTECTED])$$$N[EMAIL 
PROTECTED];W$$$d$jEy:GDc8B$N%^%J!$r$*i$j$K$J$jAGE($J=P0)$$$r$7$FD:[EMAIL 
PROTECTED]'MM$O?3::$O$$j$^$;$s!#EPO?%3!%J!$h$j%W%m%U%#!%k$r$4EPO?$/[EMAIL 
PROTECTED];!#(B
http://1191.jp/Rc/purejewelry/index.html




$B:#8eu?.5qH]$9$kJ}$O([EMAIL PROTECTED]/[EMAIL PROTECTED](B


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


[Qemu-devel] SPARC patch for OS X (big endian machines)

2005-09-27 Thread Jose Renau


 Without the following patch, I was unable to start the Linux boot 
process

on OS X (powerPC bigendian). I tried on ia64 (Linux) and works fine too.

--- target-sparc/op_helper.c23 Jul 2005 14:27:54 -  1.15
+++ target-sparc/op_helper.c27 Sep 2005 23:54:52 -
@@ -225,4 +225,5 @@
 void helper_ld_asi(int asi, int size, int sign)
 {
+
 uint32_t ret = 0;

@@ -258,8 +259,12 @@
 case 0x20 ... 0x2f: /* MMU passthrough */
cpu_physical_memory_read(T0, (void *) ret, size);
-   if (size == 4)
-   tswap32s(ret);
-else if (size == 2)
-   tswap16s((uint16_t *)ret);
+
+   tswap32s(ret);
+   if (size == 2) {
+   ret = ret  16;
+   }else if (size == 1) {
+   ret = ret  24;
+   }
+
break;
 default:



___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel