From: Ian Campbell <Ian.Campbell@eu.citrix.com>
To: Ian Jackson <Ian.Jackson@eu.citrix.com>
Cc: Christoph Egger <Christoph.Egger@amd.com>,
"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: Re: [PATCH] libxc: lzma build fix
Date: Fri, 28 Jan 2011 19:14:35 +0000 [thread overview]
Message-ID: <1296242075.20804.90.camel@localhost.localdomain> (raw)
In-Reply-To: <19779.4137.968842.267144@mariner.uk.xensource.com>
On Fri, 2011-01-28 at 18:51 +0000, Ian Jackson wrote:
> Ian Jackson writes ("Re: [Xen-devel] [PATCH] libxc: lzma build fix"):
> > Yes, we could revert this patch and hardcode a value. 32M seems
> > plausible.
>
> How about this.
>
> Ian.
>
>
> libxc: Do not use host physmem as parameter to lzma decoder
Strictly speaking it's the dom0 physmem.
> It's not clear why a userspace lzma decode would want to use that
> particular value, what bearing it has on anything or why it would
> assume it could use 1/3 of the total RAM in the system (potentially
> quite a large amount of RAM) as opposed to any other limit number.
Sounds good to me ;-)
> Instead, hardcode 32Mby.
>
> This reverts 22830:c80960244942, removes the xc_get_physmem/physmem
> function entirely, and replaces the expression at the call site with a
> fixed constant.
>
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Ian Campbell <Ian.Campbell@eu.citrix.com>
> Cc: Christoph Egger <Christoph.Egger@amd.com>
>
> diff -r 88cf07fed7d2 tools/libxc/xc_dom_bzimageloader.c
> --- a/tools/libxc/xc_dom_bzimageloader.c Fri Jan 28 18:39:09 2011 +0000
> +++ b/tools/libxc/xc_dom_bzimageloader.c Fri Jan 28 18:49:08 2011 +0000
> @@ -152,7 +152,7 @@ static int xc_try_lzma_decode(
> int outsize;
> const char *msg;
>
> - ret = lzma_alone_decoder(&stream, xc_get_physmem() / 3);
> + ret = lzma_alone_decoder(&stream, 32*1024*1024);
> if ( ret != LZMA_OK )
> {
> DOMPRINTF("LZMA: Failed to init stream decoder");
> diff -r 88cf07fed7d2 tools/libxc/xc_linux.c
> --- a/tools/libxc/xc_linux.c Fri Jan 28 18:39:09 2011 +0000
> +++ b/tools/libxc/xc_linux.c Fri Jan 28 18:49:08 2011 +0000
> @@ -55,27 +55,6 @@ void discard_file_cache(xc_interface *xc
> errno = saved_errno;
> }
>
> -uint64_t xc_get_physmem(void)
> -{
> - uint64_t ret = 0;
> - const long pagesize = sysconf(_SC_PAGESIZE);
> - const long pages = sysconf(_SC_PHYS_PAGES);
> -
> - if ( (pagesize != -1) || (pages != -1) )
> - {
> - /*
> - * According to docs, pagesize * pages can overflow.
> - * Simple case is 32-bit box with 4 GiB or more RAM,
> - * which may report exactly 4 GiB of RAM, and "long"
> - * being 32-bit will overflow. Casting to uint64_t
> - * hopefully avoids overflows in the near future.
> - */
> - ret = (uint64_t)(pagesize) * (uint64_t)(pages);
> - }
> -
> - return ret;
> -}
> -
> /*
> * Local variables:
> * mode: C
> diff -r 88cf07fed7d2 tools/libxc/xc_netbsd.c
> --- a/tools/libxc/xc_netbsd.c Fri Jan 28 18:39:09 2011 +0000
> +++ b/tools/libxc/xc_netbsd.c Fri Jan 28 18:49:08 2011 +0000
> @@ -23,9 +23,6 @@
> #include <xen/sys/evtchn.h>
> #include <unistd.h>
> #include <fcntl.h>
> -#include <stdio.h>
> -#include <errno.h>
> -#include <sys/sysctl.h>
>
> static xc_osdep_handle netbsd_privcmd_open(xc_interface *xch)
> {
> @@ -354,24 +351,6 @@ void discard_file_cache(xc_interface *xc
> errno = saved_errno;
> }
>
> -uint64_t xc_get_physmem(void)
> -{
> - int mib[2], rc;
> - size_t len;
> - uint64_t physmem;
> -
> - mib[0] = CTL_HW;
> - mib[1] = HW_PHYSMEM64;
> - rc = sysctl(mib, 2, &physmem, &len, NULL, 0);
> -
> - if (rc == -1) {
> - /* PERROR("%s: Failed to get hw.physmem64: %s\n", strerror(errno)); */
> - return 0;
> - }
> -
> - return physmem;
> -}
> -
> static struct xc_osdep_ops *netbsd_osdep_init(xc_interface *xch, enum xc_osdep_type type)
> {
> switch ( type )
> diff -r 88cf07fed7d2 tools/libxc/xc_private.h
> --- a/tools/libxc/xc_private.h Fri Jan 28 18:39:09 2011 +0000
> +++ b/tools/libxc/xc_private.h Fri Jan 28 18:49:08 2011 +0000
> @@ -275,9 +275,6 @@ void bitmap_byte_to_64(uint64_t *lp, con
> /* Optionally flush file to disk and discard page cache */
> void discard_file_cache(xc_interface *xch, int fd, int flush);
>
> -/* How much physical RAM is available? */
> -uint64_t xc_get_physmem(void);
> -
> #define MAX_MMU_UPDATES 1024
> struct xc_mmu {
> mmu_update_t updates[MAX_MMU_UPDATES];
next prev parent reply other threads:[~2011-01-28 19:14 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-26 15:22 [PATCH] libxc: lzma build fix Christoph Egger
2011-01-26 16:16 ` Ian Jackson
2011-01-26 17:27 ` Christoph Egger
2011-01-27 19:04 ` Ian Jackson
2011-01-27 19:54 ` Ian Campbell
2011-01-28 11:45 ` Ian Jackson
2011-01-28 18:51 ` Ian Jackson
2011-01-28 19:14 ` Ian Campbell [this message]
2011-01-28 19:38 ` Ian Jackson
2011-02-11 13:41 ` Jan Beulich
2011-02-11 13:53 ` Ian Campbell
2011-02-11 17:49 ` Ian Jackson
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=1296242075.20804.90.camel@localhost.localdomain \
--to=ian.campbell@eu.citrix.com \
--cc=Christoph.Egger@amd.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=xen-devel@lists.xensource.com \
/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.