On 04/03/2014 12:43 AM, Olivia Yin wrote: > This patch define CPUINFO_FILE_LEN as 2KB which is enough for most architectures. > > For the 24 cores PowerPC machines, the file of /proc/cpuinfo will be larger than 2KB. > It will fail to start libvirtd with the error message as below: > virFileReadAll: Failed to read file '/proc/cpuinfo': Value too large for defined data type > virSysinfoRead: internal error Failed to open /proc/cpuinfo > > So this patch increases the maxlen of cpuinfo for PowerPC architecture. > > Signed-off-by: Olivia Yin <Hong-Hua.Yin@xxxxxxxxxxxxx> > --- > src/util/virsysinfo.c | 6 +++--- > src/util/virsysinfo.h | 2 ++ > 2 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/src/util/virsysinfo.c b/src/util/virsysinfo.c > index 7b16157..33c4bc6 100644 > --- a/src/util/virsysinfo.c > +++ b/src/util/virsysinfo.c > @@ -223,7 +223,7 @@ virSysinfoRead(void) > if (VIR_ALLOC(ret) < 0) > goto no_memory; > > - if (virFileReadAll(CPUINFO, 2048, &outbuf) < 0) { > + if (virFileReadAll(CPUINFO, 2 * CPUINFO_FILE_LEN, &outbuf) < 0) { Uggh. Having to multiply the constant means you defined the constant wrong. Just make CPUINFO_FILE_LEN big enough. Even as large as 1M, for ALL uses, is not a burden. > +++ b/src/util/virsysinfo.h > @@ -102,4 +102,6 @@ bool virSysinfoIsEqual(virSysinfoDefPtr src, > > VIR_ENUM_DECL(virSysinfo) > > +#define CPUINFO_FILE_LEN 2048 /*2KB limit for normal cpuinfo file*/ > + > #endif /* __VIR_SYSINFOS_H__ */ > -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list