Message ID | 20241205-vuart-ns8250-v1-20-e9aa923127eb@ford.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Introduce NS8250 UART emulator | expand |
On 2024-12-05 23:41, Denis Mukhin via B4 Relay wrote: > From: Denis Mukhin <dmukhin@ford.com> > > console_owner_domid() is introduced to obtain the "console owner" domain ID. > > The call is used in NS8250 emulator to identify the case when physical xen > console focus is owned by the domain w/ NS8250 emulator, in which case, > messages from guest OS are formatted w/o '(XEN)' prefix. > > Signed-off-by: Denis Mukhin <dmukhin@ford.com> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com> I expected this to be used immediately by patch 21, but it is not. You might want to re-order it directly before its first use is introduced. I haven't gotten far enough to know when that is. Regards, Jason
On 06.12.2024 05:41, Denis Mukhin via B4 Relay wrote: > From: Denis Mukhin <dmukhin@ford.com> > > console_owner_domid() is introduced to obtain the "console owner" domain ID. > > The call is used in NS8250 emulator to identify the case when physical xen > console focus is owned by the domain w/ NS8250 emulator, in which case, > messages from guest OS are formatted w/o '(XEN)' prefix. Such messages ought to be processed through guest_printk(), which wants a domain pointer, not a domid_t anyway. Plus isn't that going to be current->domain anyway at the callsite, eliminating the need for such a helper altogether? Jan
On 10.12.2024 23:11, Jason Andryuk wrote: > On 2024-12-05 23:41, Denis Mukhin via B4 Relay wrote: >> From: Denis Mukhin <dmukhin@ford.com> >> >> console_owner_domid() is introduced to obtain the "console owner" domain ID. >> >> The call is used in NS8250 emulator to identify the case when physical xen >> console focus is owned by the domain w/ NS8250 emulator, in which case, >> messages from guest OS are formatted w/o '(XEN)' prefix. >> >> Signed-off-by: Denis Mukhin <dmukhin@ford.com> > > Reviewed-by: Jason Andryuk <jason.andryuk@amd.com> > > I expected this to be used immediately by patch 21, but it is not. You > might want to re-order it directly before its first use is introduced. > I haven't gotten far enough to know when that is. Plus, no matter how far in the future it is, there'll be a window where the Misra rule of not having unreachable code in the project is violated. New functions now really need introducing when their first caller appears. Jan
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c index 52cf64dbf6fd18d599cb88835d03501a23b3e3c4..a8ab5c2bcb98e4cadf9ad2c9ad28d297977d0557 100644 --- a/xen/drivers/char/console.c +++ b/xen/drivers/char/console.c @@ -498,6 +498,11 @@ struct domain *rcu_lock_domain_console_owner(void) return rcu_lock_domain_console_by_id(console_owner); } +domid_t console_owner_domid(void) +{ + return console_owner; +} + static bool console_owner_possible(domid_t domid) { struct domain *d; diff --git a/xen/include/xen/console.h b/xen/include/xen/console.h index 57c482cfbf2da15b011e64841ea086e779f4588d..83be5794aff6630beaad46f910fcc0fc6d833808 100644 --- a/xen/include/xen/console.h +++ b/xen/include/xen/console.h @@ -33,6 +33,7 @@ void console_end_log_everything(void); struct domain *rcu_lock_domain_console_owner(void); int console_set_owner(domid_t); +domid_t console_owner_domid(void); /* * Steal output from the console. Returns +ve identifier, else -ve error.