|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 08/12 v3] xen/arm: vpl011: Modify xenconsole to support multiple consoles
On Thu, 25 May 2017, Bhupinder Thakur wrote:
> Hi,
>
> On 17 May 2017 at 05:11, Stefano Stabellini <sstabellini@xxxxxxxxxx> wrote:
> > On Wed, 10 May 2017, Bhupinder Thakur wrote:
> >> Xenconsole supports only PV console currently. This patch adds support
> >> for supporting multiple consoles.
> >>
> >> This patch modifies different data structures and APIs used
> >> in xenconsole to support multiple consoles.
> >>
> >> Change summary:
> >>
> >> 1. Split the domain structure into a console structure and the
> >> domain structure, where each console structure represents one
> >> console.
> >>
> >> 2. Modify different APIs such as buffer_append() etc. to take
> >> console structure as input and perform per console specific
> >> operations.
> >>
> >> 3. Define a generic console_create_ring(), which sets up the
> >> ring buffer and event channel for each console.
> >>
> >> 3. Modify domain_create_ring() to use console_create_ring().
> >>
> >> 4. Modifications in handle_ring_read() to read ring buffer data
> >> from multiple consoles.
> >>
> >> 5. Add log file support for multiple consoles.
> >>
> >> Signed-off-by: Bhupinder Thakur <bhupinder.thakur@xxxxxxxxxx>
> >
> > There is something wrong with this patch: I cannot apply it.
> >
> > Also, it is still way to big for me to review. I cannot track all the
> > changes and figure out if they are correct.
> >
> > One option is to introduce struct console in one patch, with only one
> > struct console per domain. Then the second patch could introduce
> > multiple struct console with the helpers such as console_iter_void_arg1.
> >
> > Finally the third patch could add vuart support.
> >
> I have divided the changes into 4 patches:
>
> patch#1: This patch introduces the console structure and modifies the
> code to use the new console structure.
>
> patch#2: This patch modifies the functions to take console structure
> as input instead of domain structure. Also it renames the console
> specific functions to start with "console_" prefix instead of
> "domain_" prefix. For example - domain_create_tty() is renamed to
> console_create_tty().
>
> patch#3: This patch adds the support for multiple consoles and
> introduces the iterator functions to operate on multiple consoles.
>
> patch#4: Finally this patch adds support for a new vuart console.
Thank you, it looks better on paper
> >> -static int create_domain_log(struct domain *dom)
> >> +static int create_console_log(struct console *con)
> >> {
> >> char logfile[PATH_MAX];
> >> char *namepath, *data, *s;
> >> int fd;
> >> unsigned int len;
> >> + struct domain *dom = con->d;
> >>
> >> namepath = xs_get_domain_path(xs, dom->domid);
> >> s = realloc(namepath, strlen(namepath) + 6);
> >> @@ -314,7 +443,9 @@ static int create_domain_log(struct domain *dom)
> >> return -1;
> >> }
> >>
> >> - snprintf(logfile, PATH_MAX-1, "%s/guest-%s.log", log_dir, data);
> >> + snprintf(logfile, PATH_MAX-1, "%s%s/guest-%s.log",
> >> + log_dir, con->xspath, data);
> >
> > This changes the log directory, right? Are the new directories created
> > correctly by the install scripts?
> I will correct this. There should be no change in the path for PV
> console log. I think by default guest logging is disabled. How can I
> enable the logging to test it? I believe some option needs to be
> passed while spawning xenconsoled?
Yes, it looks like it's the -l option, see:
case 'l':
if (!strcmp(optarg, "all")) {
log_hv = 1;
log_guest = 1;
} else if (!strcmp(optarg, "hv")) {
log_hv = 1;
} else if (!strcmp(optarg, "guest")) {
log_guest = 1;
}
in main.c
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |