[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: [PATCH 1/6] trace: share t_info pages only in read-only mode


  • To: Jan Beulich <JBeulich@xxxxxxxxxx>
  • From: George Dunlap <George.Dunlap@xxxxxxxxxxxxx>
  • Date: Tue, 29 Jun 2010 17:27:04 +0100
  • Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
  • Delivery-date: Tue, 29 Jun 2010 09:28:04 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=s6+WY9RIOnJeeTyYIRhjMmSx6HXDPqLx40pH7SkQLRRAO48j89dYQvnBZOsk5asE9E OqUZ66SXmIOeY4ldednH9cOaZ6FTGOIZw5beRqdQoxiraxQBxX8oVYneG8Gl1tRGyKDP Iz1FY9Ep+DSX0VOeNb4grFbuR0w+wHhjFVIlw=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Acked-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>

On Tue, Jun 29, 2010 at 4:31 PM, Jan Beulich <JBeulich@xxxxxxxxxx> wrote:
> There's no need to share writably the t_info pages (Dom0 only wants
> [and needs] to read it)
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
>
> --- 2010-06-15.orig/tools/xenmon/xenbaked.c     2010-06-29 16:55:30.000000000 
> +0200
> +++ 2010-06-15/tools/xenmon/xenbaked.c  2010-06-28 10:23:01.000000000 +0200
> @@ -84,7 +84,7 @@ typedef struct settings_st {
>  } settings_t;
>
>  struct t_struct {
> -    struct t_info *t_info;  /* Structure with information about individual 
> buffers */
> +    const struct t_info *t_info; /* Structure with information about 
> individual buffers */
>     struct t_buf **meta;    /* Pointers to trace buffer metadata */
>     unsigned char **data;   /* Pointers to trace buffer data areas */
>  };
> @@ -376,9 +376,8 @@ static struct t_struct *map_tbufs(unsign
>     }
>
>     /* Map t_info metadata structure */
> -    tbufs.t_info = xc_map_foreign_range(xc_handle, DOMID_XEN,
> -                                        tinfo_size, PROT_READ | PROT_WRITE,
> -                                        tbufs_mfn);
> +    tbufs.t_info = xc_map_foreign_range(xc_handle, DOMID_XEN, tinfo_size,
> +                                        PROT_READ, tbufs_mfn);
>
>     if ( tbufs.t_info == 0 )
>     {
> @@ -404,7 +403,8 @@ static struct t_struct *map_tbufs(unsign
>     for(i=0; i<num; i++)
>     {
>
> -        uint32_t *mfn_list = ((uint32_t *)tbufs.t_info) + 
> tbufs.t_info->mfn_offset[i];
> +        const uint32_t *mfn_list = (const uint32_t *)tbufs.t_info
> +                                   + tbufs.t_info->mfn_offset[i];
>         int j;
>         xen_pfn_t pfn_list[tbufs.t_info->tbuf_size];
>
> --- 2010-06-15.orig/tools/xentrace/xentrace.c   2010-06-29 16:55:30.000000000 
> +0200
> +++ 2010-06-15/tools/xentrace/xentrace.c        2010-06-28 10:23:26.000000000 
> +0200
> @@ -63,7 +63,7 @@ typedef struct settings_st {
>  } settings_t;
>
>  struct t_struct {
> -    struct t_info *t_info;  /* Structure with information about individual 
> buffers */
> +    const struct t_info *t_info; /* Structure with information about 
> individual buffers */
>     struct t_buf **meta;    /* Pointers to trace buffer metadata */
>     unsigned char **data;   /* Pointers to trace buffer data areas */
>  };
> @@ -475,9 +475,8 @@ static struct t_struct *map_tbufs(unsign
>     int i;
>
>     /* Map t_info metadata structure */
> -    tbufs.t_info = xc_map_foreign_range(xc_handle, DOMID_XEN,
> -                                        tinfo_size, PROT_READ | PROT_WRITE,
> -                                        tbufs_mfn);
> +    tbufs.t_info = xc_map_foreign_range(xc_handle, DOMID_XEN, tinfo_size,
> +                                        PROT_READ, tbufs_mfn);
>
>     if ( tbufs.t_info == 0 )
>     {
> @@ -503,7 +502,8 @@ static struct t_struct *map_tbufs(unsign
>     for(i=0; i<num; i++)
>     {
>
> -        uint32_t *mfn_list = ((uint32_t *)tbufs.t_info) + 
> tbufs.t_info->mfn_offset[i];
> +        const uint32_t *mfn_list = (const uint32_t *)tbufs.t_info
> +                                   + tbufs.t_info->mfn_offset[i];
>         int j;
>         xen_pfn_t pfn_list[tbufs.t_info->tbuf_size];
>
> --- 2010-06-15.orig/xen/common/trace.c  2010-06-28 12:16:05.000000000 +0200
> +++ 2010-06-15/xen/common/trace.c       2010-06-28 11:58:37.000000000 +0200
> @@ -309,7 +309,7 @@ void __init init_trace_bufs(void)
>
>     for(i=0; i<T_INFO_PAGES; i++)
>         share_xen_page_with_privileged_guests(
> -            virt_to_page(t_info) + i, XENSHARE_writable);
> +            virt_to_page(t_info) + i, XENSHARE_readonly);
>
>     if ( opt_tbuf_size == 0 )
>     {
>
>
>
>

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.