All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Matthew Fernandez <matthew.fernandez@gmail.com>
Cc: Blue Swirl <blauwirbel@gmail.com>,
	Anthony Liguori <aliguori@us.ibm.com>,
	qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] Command line support for altering the log file location
Date: Tue, 07 Jun 2011 10:49:43 +0200	[thread overview]
Message-ID: <4DEDE627.1070907@redhat.com> (raw)
In-Reply-To: <BANLkTikpd4PXU7T6f2bJFJi88R_ArmDEsg@mail.gmail.com>

Am 05.06.2011 02:46, schrieb Matthew Fernandez:
> So, to clarify, all text above the '----' is included as the commit
> message and the sign off line should be in this section. All text
> below the '----' before the first diff is treated as comments that are
> not to be committed. Is this correct? If so I'll send through an
> ammended patch with these changes.

Yes, this is correct.

Kevin

> 
> On 4 June 2011 20:18, Blue Swirl <blauwirbel@gmail.com> wrote:
>> On Tue, May 31, 2011 at 9:20 AM, Matthew Fernandez
>> <matthew.fernandez@gmail.com> wrote:
>>> Hi,
>>>
>>> The included patch adds command line support for logging to a location
>>> other than /tmp/qemu.log. The diff is relative to commit
>>> 2eb9f241824d000fcd90bd7f4b49e40b88e62975. Please let me know if
>>> anything needs to be cleaned up or changed. Anthony, I'm not sure who
>>> should be responsible for reviewing/accepting this, but I've CCed you
>>> as it touches vl.c.
>>
>> The patch looks OK, however the above text (which git-am would use as
>> the commit message) needs to be changed. How about something like
>> this:
>> Add command line support for logging to a location other than /tmp/qemu.log.
>>
>> If you want to add comments which should not go to the commit message,
>> please put them below the line with '----'.
>>
>>> Thanks,
>>> Matthew
>>>
>>> ----
>>> Signed-off-by: Matthew Fernandez <matthew.fernandez@gmail.com>
>>
>> Also this needs to be above the  '----' line.
>>
>>>
>>> diff --git a/bsd-user/main.c b/bsd-user/main.c
>>> index 0c3fca1..0af8a7e 100644
>>> --- a/bsd-user/main.c
>>> +++ b/bsd-user/main.c
>>> @@ -690,7 +690,8 @@ static void usage(void)
>>>            "-bsd type         select emulated BSD type
>>> FreeBSD/NetBSD/OpenBSD (default)\n"
>>>            "\n"
>>>            "Debug options:\n"
>>> -           "-d options   activate log (logfile=%s)\n"
>>> +           "-d options   activate log (default logfile=%s)\n"
>>> +           "-D logfile   override default logfile location\n"
>>>            "-p pagesize  set the host page size to 'pagesize'\n"
>>>            "-singlestep  always run in singlestep mode\n"
>>>            "-strace      log system calls\n"
>>> @@ -731,6 +732,8 @@ int main(int argc, char **argv)
>>>  {
>>>     const char *filename;
>>>     const char *cpu_model;
>>> +    const char *log_file = DEBUG_LOGFILE;
>>> +    const char *log_mask = NULL;
>>>     struct target_pt_regs regs1, *regs = &regs1;
>>>     struct image_info info1, *info = &info1;
>>>     TaskState ts1, *ts = &ts1;
>>> @@ -745,9 +748,6 @@ int main(int argc, char **argv)
>>>     if (argc <= 1)
>>>         usage();
>>>
>>> -    /* init debug */
>>> -    cpu_set_log_filename(DEBUG_LOGFILE);
>>> -
>>>     if ((envlist = envlist_create()) == NULL) {
>>>         (void) fprintf(stderr, "Unable to allocate envlist\n");
>>>         exit(1);
>>> @@ -775,22 +775,15 @@ int main(int argc, char **argv)
>>>         if (!strcmp(r, "-")) {
>>>             break;
>>>         } else if (!strcmp(r, "d")) {
>>> -            int mask;
>>> -            const CPULogItem *item;
>>> -
>>> -            if (optind >= argc)
>>> +            if (optind >= argc) {
>>>                 break;
>>> -
>>> -            r = argv[optind++];
>>> -            mask = cpu_str_to_log_mask(r);
>>> -            if (!mask) {
>>> -                printf("Log items (comma separated):\n");
>>> -                for(item = cpu_log_items; item->mask != 0; item++) {
>>> -                    printf("%-10s %s\n", item->name, item->help);
>>> -                }
>>> -                exit(1);
>>>             }
>>> -            cpu_set_log(mask);
>>> +            log_mask = argv[optind++];
>>> +        } else if (!strcmp(r, "D")) {
>>> +            if (optind >= argc) {
>>> +                break;
>>> +            }
>>> +            log_file = argv[optind++];
>>>         } else if (!strcmp(r, "E")) {
>>>             r = argv[optind++];
>>>             if (envlist_setenv(envlist, r) != 0)
>>> @@ -867,6 +860,23 @@ int main(int argc, char **argv)
>>>         usage();
>>>     filename = argv[optind];
>>>
>>> +    /* init debug */
>>> +    cpu_set_log_filename(log_file);
>>> +    if (log_mask) {
>>> +        int mask;
>>> +        const CPULogItem *item;
>>> +
>>> +        mask = cpu_str_to_log_mask(r);
>>> +        if (!mask) {
>>> +            printf("Log items (comma separated):\n");
>>> +            for (item = cpu_log_items; item->mask != 0; item++) {
>>> +                printf("%-10s %s\n", item->name, item->help);
>>> +            }
>>> +            exit(1);
>>> +        }
>>> +        cpu_set_log(mask);
>>> +    }
>>> +
>>>     /* Zero out regs */
>>>     memset(regs, 0, sizeof(struct target_pt_regs));
>>>
>>> diff --git a/cpus.c b/cpus.c
>>> index 1fc34b7..17e96b5 100644
>>> --- a/cpus.c
>>> +++ b/cpus.c
>>> @@ -1142,6 +1142,11 @@ void set_cpu_log(const char *optarg)
>>>     cpu_set_log(mask);
>>>  }
>>>
>>> +void set_cpu_log_filename(const char *optarg)
>>> +{
>>> +    cpu_set_log_filename(optarg);
>>> +}
>>> +
>>>  /* Return the virtual CPU time, based on the instruction counter.  */
>>>  int64_t cpu_get_icount(void)
>>>  {
>>> diff --git a/cpus.h b/cpus.h
>>> index 6fdeb0d..f42b54e 100644
>>> --- a/cpus.h
>>> +++ b/cpus.h
>>> @@ -19,6 +19,7 @@ void vm_state_notify(int running, int reason);
>>>  bool cpu_exec_all(void);
>>>  void set_numa_modes(void);
>>>  void set_cpu_log(const char *optarg);
>>> +void set_cpu_log_filename(const char *optarg);
>>>  void list_cpus(FILE *f, fprintf_function cpu_fprintf, const char *optarg);
>>>
>>>  #endif
>>> diff --git a/darwin-user/main.c b/darwin-user/main.c
>>> index 175e12f..a6dc859 100644
>>> --- a/darwin-user/main.c
>>> +++ b/darwin-user/main.c
>>> @@ -738,6 +738,8 @@ TaskState *first_task_state;
>>>  int main(int argc, char **argv)
>>>  {
>>>     const char *filename;
>>> +    const char *log_file = DEBUG_LOGFILE;
>>> +    const char *log_mask = NULL;
>>>     struct target_pt_regs regs1, *regs = &regs1;
>>>     TaskState ts1, *ts = &ts1;
>>>     CPUState *env;
>>> @@ -749,9 +751,6 @@ int main(int argc, char **argv)
>>>     if (argc <= 1)
>>>         usage();
>>>
>>> -    /* init debug */
>>> -    cpu_set_log_filename(DEBUG_LOGFILE);
>>> -
>>>     optind = 1;
>>>     for(;;) {
>>>         if (optind >= argc)
>>> @@ -764,22 +763,15 @@ int main(int argc, char **argv)
>>>         if (!strcmp(r, "-")) {
>>>             break;
>>>         } else if (!strcmp(r, "d")) {
>>> -            int mask;
>>> -            CPULogItem *item;
>>> -
>>> -        if (optind >= argc)
>>> -        break;
>>> -
>>> -        r = argv[optind++];
>>> -            mask = cpu_str_to_log_mask(r);
>>> -            if (!mask) {
>>> -                printf("Log items (comma separated):\n");
>>> -                for(item = cpu_log_items; item->mask != 0; item++) {
>>> -                    printf("%-10s %s\n", item->name, item->help);
>>> -                }
>>> -                exit(1);
>>> +            if (optind >= argc) {
>>> +                break;
>>>             }
>>> -            cpu_set_log(mask);
>>> +            log_mask = argv[optind++];
>>> +        } else if (!strcmp(r, "D")) {
>>> +            if (optind >= argc) {
>>> +                break;
>>> +            }
>>> +            log_file = argv[optind++];
>>>         } else if (!strcmp(r, "s")) {
>>>             r = argv[optind++];
>>>             stack_size = strtol(r, (char **)&r, 0);
>>> @@ -821,6 +813,23 @@ int main(int argc, char **argv)
>>>         usage();
>>>     filename = argv[optind];
>>>
>>> +    /* init debug */
>>> +    cpu_set_log_filename(log_file);
>>> +    if (log_mask) {
>>> +        int mask;
>>> +        CPULogItem *item;
>>> +
>>> +        mask = cpu_str_to_log_mask(r);
>>> +        if (!mask) {
>>> +            printf("Log items (comma separated):\n");
>>> +            for (item = cpu_log_items; item->mask != 0; item++) {
>>> +                printf("%-10s %s\n", item->name, item->help);
>>> +            }
>>> +            exit(1);
>>> +        }
>>> +        cpu_set_log(mask);
>>> +    }
>>> +
>>>     /* Zero out regs */
>>>     memset(regs, 0, sizeof(struct target_pt_regs));
>>>
>>> diff --git a/linux-user/main.c b/linux-user/main.c
>>> index 088def3..23c229c 100644
>>> --- a/linux-user/main.c
>>> +++ b/linux-user/main.c
>>> @@ -2848,6 +2848,8 @@ int main(int argc, char **argv, char **envp)
>>>  {
>>>     const char *filename;
>>>     const char *cpu_model;
>>> +    const char *log_file = DEBUG_LOGFILE;
>>> +    const char *log_mask = NULL;
>>>     struct target_pt_regs regs1, *regs = &regs1;
>>>     struct image_info info1, *info = &info1;
>>>     struct linux_binprm bprm;
>>> @@ -2869,9 +2871,6 @@ int main(int argc, char **argv, char **envp)
>>>
>>>     qemu_cache_utils_init(envp);
>>>
>>> -    /* init debug */
>>> -    cpu_set_log_filename(DEBUG_LOGFILE);
>>> -
>>>     if ((envlist = envlist_create()) == NULL) {
>>>         (void) fprintf(stderr, "Unable to allocate envlist\n");
>>>         exit(1);
>>> @@ -2910,22 +2909,15 @@ int main(int argc, char **argv, char **envp)
>>>         if (!strcmp(r, "-")) {
>>>             break;
>>>         } else if (!strcmp(r, "d")) {
>>> -            int mask;
>>> -            const CPULogItem *item;
>>> -
>>> -           if (optind >= argc)
>>> +            if (optind >= argc) {
>>>                break;
>>> -
>>> -           r = argv[optind++];
>>> -            mask = cpu_str_to_log_mask(r);
>>> -            if (!mask) {
>>> -                printf("Log items (comma separated):\n");
>>> -                for(item = cpu_log_items; item->mask != 0; item++) {
>>> -                    printf("%-10s %s\n", item->name, item->help);
>>> -                }
>>> -                exit(1);
>>>             }
>>> -            cpu_set_log(mask);
>>> +            log_mask = argv[optind++];
>>> +        } else if (!strcmp(r, "D")) {
>>> +            if (optind >= argc) {
>>> +                break;
>>> +            }
>>> +            log_file = argv[optind++];
>>>         } else if (!strcmp(r, "E")) {
>>>             r = argv[optind++];
>>>             if (envlist_setenv(envlist, r) != 0)
>>> @@ -3038,6 +3030,23 @@ int main(int argc, char **argv, char **envp)
>>>     filename = argv[optind];
>>>     exec_path = argv[optind];
>>>
>>> +    /* init debug */
>>> +    cpu_set_log_filename(log_file);
>>> +    if (log_mask) {
>>> +        int mask;
>>> +        const CPULogItem *item;
>>> +
>>> +        mask = cpu_str_to_log_mask(r);
>>> +        if (!mask) {
>>> +            printf("Log items (comma separated):\n");
>>> +            for (item = cpu_log_items; item->mask != 0; item++) {
>>> +                printf("%-10s %s\n", item->name, item->help);
>>> +            }
>>> +            exit(1);
>>> +        }
>>> +        cpu_set_log(mask);
>>> +    }
>>> +
>>>     /* Zero out regs */
>>>     memset(regs, 0, sizeof(struct target_pt_regs));
>>>
>>> diff --git a/qemu-options.hx b/qemu-options.hx
>>> index 82e085a..05513e8 100644
>>> --- a/qemu-options.hx
>>> +++ b/qemu-options.hx
>>> @@ -1991,6 +1991,15 @@ STEXI
>>>  Output log in /tmp/qemu.log
>>>  ETEXI
>>>
>>> +DEF("D", HAS_ARG, QEMU_OPTION_D, \
>>> +    "-D logfile      output log to logfile (instead of the default
>>> /tmp/qemu.log)\n",
>>> +    QEMU_ARCH_ALL)
>>> +STEXI
>>> +@item -D
>>> +@findex -D
>>> +Output log in logfile instead of /tmp/qemu.log
>>> +ETEXI
>>> +
>>>  DEF("hdachs", HAS_ARG, QEMU_OPTION_hdachs, \
>>>     "-hdachs c,h,s[,t]\n" \
>>>     "                force hard disk 0 physical geometry and the
>>> optional BIOS\n" \
>>> diff --git a/vl.c b/vl.c
>>> index b362871..e459f64 100644
>>> --- a/vl.c
>>> +++ b/vl.c
>>> @@ -2060,6 +2060,8 @@ int main(int argc, char **argv, char **envp)
>>>  #endif
>>>     int defconfig = 1;
>>>     const char *trace_file = NULL;
>>> +    const char *log_mask = NULL;
>>> +    const char *log_file = NULL;
>>>
>>>     atexit(qemu_run_exit_notifiers);
>>>     error_set_progname(argv[0]);
>>> @@ -2434,7 +2436,10 @@ int main(int argc, char **argv, char **envp)
>>>                 break;
>>>  #endif
>>>             case QEMU_OPTION_d:
>>> -                set_cpu_log(optarg);
>>> +                log_mask = optarg;
>>> +                break;
>>> +            case QEMU_OPTION_D:
>>> +                log_file = optarg;
>>>                 break;
>>>             case QEMU_OPTION_s:
>>>                 gdbstub_dev = "tcp::" DEFAULT_GDBSTUB_PORT;
>>> @@ -2900,6 +2905,18 @@ int main(int argc, char **argv, char **envp)
>>>     }
>>>     loc_set_none();
>>>
>>> +    /* Open the logfile at this point, if necessary. We can't open the logfile
>>> +     * when encountering either of the logging options (-d or -D) because the
>>> +     * other one may be encountered later on the command line, changing the
>>> +     * location or level of logging.
>>> +     */
>>> +    if (log_mask) {
>>> +        if (log_file) {
>>> +            set_cpu_log_filename(log_file);
>>> +        }
>>> +        set_cpu_log(log_mask);
>>> +    }
>>> +
>>>     if (!st_init(trace_file)) {
>>>         fprintf(stderr, "warning: unable to initialize simple trace
>>> backend\n");
>>>     }
>>>
>>>
>>
> 

  reply	other threads:[~2011-06-07  8:46 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-31  6:20 [Qemu-devel] [PATCH] Command line support for altering the log file location Matthew Fernandez
2011-06-04 10:18 ` Blue Swirl
2011-06-05  0:46   ` Matthew Fernandez
2011-06-07  8:49     ` Kevin Wolf [this message]
2011-06-08  2:32       ` Matthew Fernandez
2011-06-15 16:54         ` Blue Swirl
2011-06-28 18:33         ` Edgar E. Iglesias
2011-06-28 19:02         ` Edgar E. Iglesias
2011-06-29 12:48           ` Matthew Fernandez

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=4DEDE627.1070907@redhat.com \
    --to=kwolf@redhat.com \
    --cc=aliguori@us.ibm.com \
    --cc=blauwirbel@gmail.com \
    --cc=matthew.fernandez@gmail.com \
    --cc=qemu-devel@nongnu.org \
    /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.