On Mon, 2007-09-17 at 09:16 -0700, Joe Perches wrote: > On Mon, 2007-09-17 at 10:31 +0200, Avi Kivity wrote: > > diff --git a/drivers/kvm/kvm.h b/drivers/kvm/kvm.h > > index cfda3ab..6d25826 100644 > > --- a/drivers/kvm/kvm.h > > +++ b/drivers/kvm/kvm.h > > @@ -474,6 +474,14 @@ struct kvm_arch_ops { > > > > extern struct kvm_arch_ops *kvm_arch_ops; > > > > +/* The guest did something we don't support. */ > > +#define pr_unimpl(vcpu, fmt, ...) \ > > + do { > > \ > > + if (printk_ratelimit()) \ > > + printk(KERN_ERR "kvm: %i: cpu%i " fmt, \ > > + current->tgid, (vcpu)->vcpu_id , ## __VA_ARGS__); \ > > + } while(0) > > + > > #define kvm_printf(kvm, fmt ...) printk(KERN_DEBUG fmt) > > #define vcpu_printf(vcpu, fmt...) kvm_printf(vcpu->kvm, fmt) > > > > This converts all KERN_<level> uses to KERN_ERR. > It seems better to add a <level> argument to kvm_printf. > pr_unimpl is perhaps a poor name choice. > perhaps vcpu_printk_ratelimit(vcpu, level, fmt, ...)
Possibly, but remember that printk() is an admission of failure. It's only useful to developers, and the only reason for printk over pr_debug() is for users to report to developers when guests crash. pr_unimpl() means exactly what it says: the guest asked for something we don't support. If that turns out to be the last thing in the logs before a crash, it's a clue. The rest of the printks should probably move to pr_debug(). Hope that helps, Rusty. ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel