All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gerd Knorr <kraxel@bytesex.org>
To: roland <for_spam@gmx.de>
Cc: user-mode-linux-devel@lists.sourceforge.net,
	uml-user <user-mode-linux-user@lists.sourceforge.net>
Subject: [uml-devel] Re: Workaround for bug #851759 -  SuSE YAST in textmode does not work
Date: Mon, 8 Dec 2003 10:59:06 +0100	[thread overview]
Message-ID: <20031208095906.GB22878@bytesex.org> (raw)
In-Reply-To: <055801c3bd22$f1a1b3f0$2000000a@schlepptopp>

> "list systemProbe = SCR:Read(.probe.system);"

Oh, that one.  Didn't know yast triggeres this too.  That is actually
a bug in the uml kernel (there should be a mail in the -devel archive
...).  One if the things the hardware probes does is to check whenever
it runs within vmware or not, and that test hangs (source code below).

Known workarounds:
  * boot with "hwprobe=-sys" (that will make the hardware detect
    skip the critical test), or
  * don't use skas mode (it hangs in skas mode only for some
    musterious reason), or
  * just do something else in another terminal, that will unblock
    it too (scheduler bug in the uml kernel?).

> btw: what would be a better solution: asking the suse people to make
> yast "uml-aware" or fixing those things inside uml?

IMHO this one is a UML kernel bug.

  Gerd

==============================[ cut here ]==============================
#define _GNU_SOURCE		/* we want memmem() */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <signal.h>

#include <sys/types.h>
#include <sys/wait.h>

void sigsegv_handler(int signum) { exit(77); }

int chk_vmware(void)
{
  static int is_vmware = -1;
  int child, status;

  /* do the check only once */
  if(is_vmware < 0) {

    child = fork();

    if(child == 0) {
      signal(SIGSEGV, sigsegv_handler);

      asm(
        "push %ebx\n"
        "\tpush %edx\n"
        "\tpush %eax\n"
        "\tpush %ecx\n"
        "\tmov $0x564d5868,%eax\n"
        "\tmov $0xa,%ecx\n"
        "\tmov $0x5658,%edx\n"
        "\tin (%dx),%eax\n"
        "\tpop %ecx\n"
        "\tpop %eax\n"
        "\tpop %edx\n"
        "\tpop %ebx\n"
      );

      _exit(66);
    }
    else {
      if(waitpid(child, &status, 0) == child) {
        status = WEXITSTATUS(status);
        if(status == 66) is_vmware = 1;
        if(status == 77) is_vmware = 0;
      }
    }
  }
  return is_vmware;
}

int main(int argc, char *argv[])
{
	int rc;

	fprintf(stderr, "check for vmware... ");
	rc = chk_vmware();
	fprintf(stderr, "%s\n", rc ? "yes" : "no");
	return rc;
}


-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

  parent reply	other threads:[~2003-12-08  9:59 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-12-08  0:33 [uml-devel] Workaround for bug #851759 - SuSE YAST in textmode does not work roland
2003-12-08  0:34 ` Matt Ayres
2003-12-08  9:40   ` Henrik Nordstrom
2003-12-08  9:44 ` Henrik Nordstrom
2003-12-08 20:32   ` [uml-user] " roland
2003-12-08  9:59 ` Gerd Knorr [this message]
2003-12-08 22:30   ` [uml-devel] Re: [uml-user] " roland
2003-12-09  9:06     ` Gerd Knorr
2003-12-10 21:14   ` [uml-devel] " Henrik Nordstrom
2003-12-10 23:52     ` roland
2003-12-11 12:00     ` Gerd Knorr
2003-12-11 12:58       ` Henrik Nordstrom
2003-12-11 14:06         ` Gerd Knorr
2003-12-11 21:59       ` roland
2003-12-12  8:58         ` Gerd Knorr
2003-12-12 11:31           ` Henrik Nordstrom
2003-12-12 11:55             ` Gerd Knorr

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20031208095906.GB22878@bytesex.org \
    --to=kraxel@bytesex.org \
    --cc=for_spam@gmx.de \
    --cc=user-mode-linux-devel@lists.sourceforge.net \
    --cc=user-mode-linux-user@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.