Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1209321

Re: [PATCHv2 3/4] mm: pack compound_dtor and compound_order into one word in struct page

From Michal Hocko <mhocko@kernel.org>
Newsgroups linux.kernel
Subject Re: [PATCHv2 3/4] mm: pack compound_dtor and compound_order into one word in struct page
Date 2015-08-18 17:50 +0200
Message-ID <pYRjc-293-11@gated-at.bofh.it> (permalink)
References <pYucV-2sM-9@gated-at.bofh.it> <pYucW-2sM-21@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Mon 17-08-15 18:09:04, Kirill A. Shutemov wrote:
> The patch halves space occupied by compound_dtor and compound_order in
> struct page.
> 
> For compound_order, it's trivial long -> int/short conversion.
> 
> For get_compound_page_dtor(), we now use hardcoded table for destructor
> lookup and store its index in the struct page instead of direct pointer
> to destructor. It shouldn't be a big trouble to maintain the table: we
> have only two destructor and NULL currently.
> 
> This patch free up one word in tail pages for reuse. This is preparation
> for the next patch.
>
> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>

Reviewed-by: Michal Hocko <mhocko@suse.com>

[...]
> @@ -145,8 +143,13 @@ struct page {
>  						 */
>  		/* First tail page of compound page */
>  		struct {
> -			compound_page_dtor *compound_dtor;
> -			unsigned long compound_order;
> +#ifdef CONFIG_64BIT
> +			unsigned int compound_dtor;
> +			unsigned int compound_order;
> +#else
> +			unsigned short int compound_dtor;
> +			unsigned short int compound_order;
> +#endif
>  		};

Why do we need this ifdef? We can go with short for both 32b and 64b
AFAICS. We do not use compound_order for anything else than the order,
right?

While I am looking at this, it seems we are jugling with type for order
quite a lot - int, unsing int and even unsigned long.
-- 
Michal Hocko
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCHv2 0/4] Fix compound_head() race "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> - 2015-08-17 17:10 +0200
  [PATCHv2 3/4] mm: pack compound_dtor and compound_order into one word in struct page "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> - 2015-08-17 17:10 +0200
    Re: [PATCHv2 3/4] mm: pack compound_dtor and compound_order into  one word in struct page Hugh Dickins <hughd@google.com> - 2015-08-18 01:10 +0200
    Re: [PATCHv2 3/4] mm: pack compound_dtor and compound_order into one  word in struct page Michal Hocko <mhocko@kernel.org> - 2015-08-18 17:50 +0200
      Re: [PATCHv2 3/4] mm: pack compound_dtor and compound_order into one  word in struct page "Kirill A. Shutemov" <kirill@shutemov.name> - 2015-08-18 20:30 +0200
    Re: [PATCHv2 3/4] mm: pack compound_dtor and compound_order into one  word in struct page Michal Hocko <mhocko@kernel.org> - 2015-08-18 18:10 +0200
      Re: [PATCHv2 3/4] mm: pack compound_dtor and compound_order into one  word in struct page "Kirill A. Shutemov" <kirill@shutemov.name> - 2015-08-18 20:30 +0200
  [PATCHv2 2/4] zsmalloc: use page->private instead of page->first_page "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> - 2015-08-17 17:10 +0200
  [PATCHv2 4/4] mm: make compound_head() robust "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> - 2015-08-17 17:20 +0200
    Re: [PATCHv2 4/4] mm: make compound_head() robust Michal Hocko <mhocko@kernel.org> - 2015-08-18 13:30 +0200
      Re: [PATCHv2 4/4] mm: make compound_head() robust Michal Hocko <mhocko@kernel.org> - 2015-08-18 18:50 +0200
        Re: [PATCHv2 4/4] mm: make compound_head() robust "Kirill A. Shutemov" <kirill@shutemov.name> - 2015-08-18 20:30 +0200

csiph-web