[Qemu-devel] Shutting down the unused bug tracker

2006-01-02 Thread Adam Kennedy

I've put this into a seperate email for thread purposes.

It appears you have a bug tracker running on Savannah that people have 
people have been submitting bugs into for 2 years, but that nobody has 
actually been handling.


Of the 59 bug reports in the tracking system, none have been assigned, 
prioritised, or closed.


I would highly recommend shutting this down if you are not using it, as 
it may be causing people to falsely believe they have reported bugs, 
when they should have reported them to this (or the -user) mailing list.


Adam K


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


[Qemu-devel] Feature Request: command line option to validate params without starting an image

2006-01-02 Thread Adam Kennedy

I'm currently writing a large scale image-based testing system.

(for background info) http://ali.as/pita/

Part of this involves a wrapper for Qemu to launch images with generated 
options.


However currently I have no way way to write unit tests for this code 
that I can determine.


What would be extremely useful would be a command line option I could 
add to the beginning (or end) of the options ... say -z to pick 
something at random.


This would cause qemu to do all it's normal pre-startup procedures 
(parse the options, preconfigure and precheck as much stuff as possible) 
and then bail out before allocating the memory or starting the system 
(while somehow confirming the params were ok).


I'm not sure how much work this would be, but it would be 
extraordinarily useful when writing wrappers, since the unit tests would 
typically try to validate 10-20 different combinations of options, and 
booting an image and shutting it down 20 times would be extremely harsh.


Thanks

Adam Kennedy



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


[Qemu-devel] PPC fix for upcoming hand written code generator

2006-01-02 Thread Joachim Henke
Hi Paul,

I just had a short look at your hand written code generator
(https://nowt.dyndns.org/cgi-bin/svn-qop-diff) and did some quick tests
with the i386-softmmu target on my iMac G5 (Mac OS 10.4.3). Before I could
successfully compile the code, I needed to apply a small fix:

--- host-ppc/qop-code.h
+++ host-ppc/qop-code.h
@@ -243,8 +243,8 @@
 ENCODE_D(14, dest, 0, 0); \
 QOP_END
 
-DO_SETcc32(lt, 0, 0);
-DO_SETcc32(le, 1, 1);
+DO_SETcc32(ltu, 0, 0)
+DO_SETcc32(leu, 1, 1)
 
 #define DO_JMPcc32(name, negate, cond) \
 QOP_START(jmp_##name##32) \

--- host-ppc/qop-host.def
+++ host-ppc/qop-host.def
@@ -33,8 +33,8 @@
 DEF2(jmp_ns32, HRC_G, 0)
 DEF1(jmp, 0)
 
-DEF3(set_lt32, HRC_G, HRC_G, HRC_G)
-DEF3(set_le32, HRC_G, HRC_G, HRC_G)
+DEF3(set_ltu32, HRC_G, HRC_G, HRC_G)
+DEF3(set_leu32, HRC_G, HRC_G, HRC_G)
 
 DEF2(ld8s32, HRC_G, HRC_G)
 DEF2(ld8u32, HRC_G, HRC_G)


I hope this helps you. Before, GCC returned with an error:

gcc-3.3 -Wall -O2 -g -fno-strict-aliasing -D__powerpc__ -I. 
-I/build/qemu-pb/target-i386 -I/build/qemu-pb -I/build/qemu-pb/host-ppc 
-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/build/qemu-pb/fpu 
-DHAS_AUDIO -I/build/qemu-pb/slirp -c -o translate-qop.o 
/build/qemu-pb/translate-qop.c
In file included from /build/qemu-pb/translate-qop.c:59:
/build/qemu-pb/host-ppc/qop-code.h: In function `dyngen_qop':
/build/qemu-pb/host-ppc/qop-code.h:246: error: `INDEX_op_set_lt32' undeclared 
(first use in this function)
/build/qemu-pb/host-ppc/qop-code.h:246: error: (Each undeclared identifier is 
reported only once
/build/qemu-pb/host-ppc/qop-code.h:246: error: for each function it appears in.)
/build/qemu-pb/host-ppc/qop-code.h:247: error: `INDEX_op_set_le32' undeclared 
(first use in this function)
make[1]: *** [translate-qop.o] Error 1
make: *** [all] Error 1


Although benchmarking with LZMA (7-Zip) on Win98SE showed a speed improve
of about 10%, the time it ran (taken with an external stopwatch) was almost
the same. Seems that QEMU's "internal clock" ticks a bit slower with your
patch.

I'm just a bit curious to know, when the i386 target will benefit from your
new code, and if it will be ready to be included into main CVS soon.

Thanks for your work!
Jo.


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


Re: [Qemu-devel] qemu-0.8.0 question?

2006-01-02 Thread Daniel Jacobowitz
On Mon, Jan 02, 2006 at 12:30:39PM -0500, Ishwar Rattan wrote:
> 
> Has there been a change in -user-net part
> (other than -net user) for qemu-0.8.0?
> 
> I installed Minix-3.1.1 under qemu-0.7.2
> and the network part of the install does
> not work with qemu-0.8.0.
> 
> -> qemu-0.7.2 (with -user-net option)
> 
> #ifconfig -a
> /dev/ip: address 10.0.2.15 netmask 255.255.255.0 mtu 1500
> #
> 
> -> qemu-0.8.0 (with -net user option)
> #ifconfig -a
> # ifconfig -h 10.0.2.15 -n 255.255.255.0
> ifconfig: Unable to open /dev/ip: No such device or address
> #
> 
> Any ideas?

Try -net nic -net user.  Or no -net option at all; this should be the
default if no -net options are specified, IIRC.

-- 
Daniel Jacobowitz
CodeSourcery


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


Re: [Qemu-devel] qemu-0.8.0 question?

2006-01-02 Thread Alan Pope
On 02/01/06, Ishwar Rattan <[EMAIL PROTECTED]> wrote:
>
> Has there been a change in -user-net part
> (other than -net user) for qemu-0.8.0?
>

Yes, you need -net nic as well as -net user.

Cheers,
Al.


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


[Qemu-devel] qemu-0.8.0 question?

2006-01-02 Thread Ishwar Rattan

Has there been a change in -user-net part
(other than -net user) for qemu-0.8.0?

I installed Minix-3.1.1 under qemu-0.7.2
and the network part of the install does
not work with qemu-0.8.0.

-> qemu-0.7.2 (with -user-net option)

#ifconfig -a
/dev/ip: address 10.0.2.15 netmask 255.255.255.0 mtu 1500
#

-> qemu-0.8.0 (with -net user option)
#ifconfig -a
# ifconfig -h 10.0.2.15 -n 255.255.255.0
ifconfig: Unable to open /dev/ip: No such device or address
#

Any ideas?
-ishwar



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


[Qemu-devel] Unable to compile qemu-kqemu from source

2006-01-02 Thread Carlo Andreoli
Hi,

I'm currently running qemu 0.7.2 on my Mandrake 10.0 without problems,
but since I would like to use kqemu too and there are no binary packages
for it, I've tried to compile qemu-kqemu from sources, following the 
instructions on Fabrice's site.

The ./configure and make seem to go without errors, but the make install
fails complaining for a missing kqemu.o
I've looked around in various lists and seen the same problem reported 
(without solution) for Mandrake 10.1 also,  so I decided to ask here

Following, an excerpt of the make / make install output (everything regarding 
kqemu)

Thank you all in advance

Carlo


"make" messages regarding kqemu:

make -C kqemu
make[1]: Entering directory `/home/carlo/Software/QEmu/qemu-0.7.2/kqemu'
make -C /usr/src/linux M=`pwd` modules
make[2]: Entering directory `/usr/src/linux-2.6.3-15mdk'
make[3]: `arch/i386/kernel/asm-offsets.s' is up to date.
  CHK include/asm-i386/asm_offsets.h
  CC [M]  3rdparty/prism54/islpci_eth.o
  CC [M]  3rdparty/prism54/islpci_mgt.o
  CC [M]  3rdparty/prism54/isl_38xx.o
  CC [M]  3rdparty/prism54/isl_ioctl.o
3rdparty/prism54/isl_ioctl.c:854: warning: `prism54_set_rate' defined but not 
used
  CC [M]  3rdparty/prism54/islpci_dev.o
  CC [M]  3rdparty/prism54/islpci_hotplug.o
  CC [M]  3rdparty/prism54/isl_wds.o
  CC [M]  3rdparty/prism54/oid_mgt.o
  LD [M]  3rdparty/prism54/prism54.o
  Building modules, stage 2.
  MODPOST
  LD [M]  3rdparty/prism54/prism54.ko
make[2]: Leaving directory `/usr/src/linux-2.6.3-15mdk'
make[1]: Leaving directory `/home/carlo/Software/QEmu/qemu-0.7.2/kqemu'


"make install" messages regarding kqemu:

make -C kqemu
make[1]: Entering directory `/home/carlo/Software/QEmu/qemu-0.7.2/kqemu'
make -C /usr/src/linux M=`pwd` modules
make[2]: Entering directory `/usr/src/linux-2.6.3-15mdk'
make[3]: `arch/i386/kernel/asm-offsets.s' is up to date.
  CHK include/asm-i386/asm_offsets.h
  Building modules, stage 2.
  MODPOST
make[2]: Leaving directory `/usr/src/linux-2.6.3-15mdk'
make[1]: Leaving directory `/home/carlo/Software/QEmu/qemu-0.7.2/kqemu'



cd kqemu ; ./install.sh
cp: cannot stat `kqemu.o': No such file or directory



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


Re: [Qemu-devel] [PATCH] lba48 support

2006-01-02 Thread Jens Axboe
On Fri, Dec 30 2005, Fabrice Bellard wrote:
> Jens Axboe wrote:
> >Saw the posts on this the other day and had a few spare hours to play
> >with this. Works for me, with and without DMA (didn't test mult mode,
> >but that should work fine too).
> >
> >Test with caution though, it's changing the ide code so could eat your
> >data if there's a bug there... Most clever OS's don't use lba48 even for
> >lba48 capable drives, unless the device is > 2^28 sectors and the
> >current request is past that (but they could be taking advantage of the
> >larger transfer size possible, in which case lba48 will be used even for
> >low sectors...).
> 
> Thank you for the patch ! At least two details should be corrected 
> before I can apply it:
> 
> 1) Each duplicated IDE register acts as a 2 byte FIFO, so the logic you 
> added in the write function should be modified (the regs_written field 
> is not needed).
> 
> 2) The read back logic should be implemented (HOB bit in the device 
> control register).

Updated patch below. The read back logic doesn't work right now, since
we always set bits 5-7 (the obsolete) bits in device select. But I've
dropped the regs_written hack, the hob registers are now (as intended)
always the previous value. That makes it LIFO, which I suppose is what
you meant?


Index: hw/ide.c
===
RCS file: /sources/qemu/qemu/hw/ide.c,v
retrieving revision 1.38
diff -u -r1.38 ide.c
--- hw/ide.c6 Aug 2005 09:14:32 -   1.38
+++ hw/ide.c2 Jan 2006 12:58:15 -
@@ -305,14 +305,24 @@
 /* ide regs */
 uint8_t feature;
 uint8_t error;
-uint16_t nsector; /* 0 is 256 to ease computations */
+uint32_t nsector;
 uint8_t sector;
 uint8_t lcyl;
 uint8_t hcyl;
+/* other part of tf for lba48 support */
+uint8_t hob_feature;
+uint8_t hob_nsector;
+uint8_t hob_sector;
+uint8_t hob_lcyl;
+uint8_t hob_hcyl;
+
 uint8_t select;
 uint8_t status;
+
 /* 0x3f6 command, only meaningful for drive 0 */
 uint8_t cmd;
+/* set for lba48 access */
+uint8_t lba48;
 /* depends on bit 4 in select, only meaningful for drive 0 */
 struct IDEState *cur_drive; 
 BlockDriverState *bs;
@@ -449,13 +459,17 @@
 put_le16(p + 61, s->nb_sectors >> 16);
 put_le16(p + 80, (1 << 1) | (1 << 2));
 put_le16(p + 82, (1 << 14));
-put_le16(p + 83, (1 << 14));
+put_le16(p + 83, (1 << 14) | (1 << 10)); /* lba48 supported */
 put_le16(p + 84, (1 << 14));
 put_le16(p + 85, (1 << 14));
-put_le16(p + 86, 0);
+put_le16(p + 86, (1 << 14) | (1 << 10)); /* lba48 supported */
 put_le16(p + 87, (1 << 14));
 put_le16(p + 88, 0x1f | (1 << 13));
 put_le16(p + 93, 1 | (1 << 14) | 0x2000 | 0x4000);
+put_le16(p + 100, s->nb_sectors);
+put_le16(p + 101, s->nb_sectors >> 16);
+put_le16(p + 102, s->nb_sectors >> 32);
+put_le16(p + 103, s->nb_sectors >> 48);
 }
 
 static void ide_atapi_identify(IDEState *s)
@@ -548,12 +562,18 @@
 int64_t sector_num;
 if (s->select & 0x40) {
 /* lba */
-sector_num = ((s->select & 0x0f) << 24) | (s->hcyl << 16) | 
-(s->lcyl << 8) | s->sector;
+   if (!s->lba48) {
+   sector_num = ((s->select & 0x0f) << 24) | (s->hcyl << 16) |
+ (s->lcyl << 8) | s->sector;
+   } else {
+   sector_num = ((int64_t)s->hcyl << 40) |
+ ((int64_t) s->lcyl << 32) |
+ (s->sector << 24) | (s->hob_hcyl << 16) |
+ (s->hob_lcyl << 8) | s->hob_sector;
+   }
 } else {
 sector_num = ((s->hcyl << 8) | s->lcyl) * s->heads * s->sectors +
-(s->select & 0x0f) * s->sectors + 
-(s->sector - 1);
+(s->select & 0x0f) * s->sectors + (s->sector - 1);
 }
 return sector_num;
 }
@@ -562,10 +582,19 @@
 {
 unsigned int cyl, r;
 if (s->select & 0x40) {
-s->select = (s->select & 0xf0) | (sector_num >> 24);
-s->hcyl = (sector_num >> 16);
-s->lcyl = (sector_num >> 8);
-s->sector = (sector_num);
+   if (!s->lba48) {
+s->select = (s->select & 0xf0) | (sector_num >> 24);
+s->hcyl = (sector_num >> 16);
+s->lcyl = (sector_num >> 8);
+s->sector = (sector_num);
+   } else {
+   s->hob_sector = sector_num;
+   s->hob_lcyl = sector_num >> 8;
+   s->hob_hcyl = sector_num >> 16;
+   s->sector = sector_num >> 24;
+   s->lcyl = sector_num >> 32;
+   s->hcyl = sector_num >> 40;
+   }
 } else {
 cyl = sector_num / (s->heads * s->sectors);
 r = sector_num % (s->heads * s->sectors);
@@ -1451,43 +1480,65 @@
 s->nb_sectors = nb_sectors;
 }
 
+static void ide_clear_hob(IDEState *ide_if)
+{
+/* any write clears HOB high bit of device control register */
+ide_if[0].select &= ~(1 << 7);
+ide_if[1].select &= ~(1 << 7);
+}
+