From: Andres Lagar-Cavilla <andres@lagarcavilla.org>
To: xen-devel@lists.xensource.com
Cc: ian.campbell@citrix.com, andres@gridcentric.ca, tim@xen.org,
keir.xen@gmail.com, JBeulich@suse.com, ian.jackson@citrix.com,
adin@gridcentric.ca
Subject: [PATCH 13 of 13] x86/mm: Sharing overhaul style improvements
Date: Wed, 25 Jan 2012 22:32:37 -0500 [thread overview]
Message-ID: <f09f62ae92b7a8be9989.1327548757@xdev.gridcentric.ca> (raw)
In-Reply-To: <patchbomb.1327548744@xdev.gridcentric.ca>
xen/arch/x86/mm/mem_sharing.c | 64 +++++++++++++++++++++---------------------
xen/include/asm-x86/mm.h | 2 +-
2 files changed, 33 insertions(+), 33 deletions(-)
The name 'shared_info' for the list of shared pages backed by a share frame
collided with the identifier also used for a domain's shared info page. To
avoid grep/cscope/etc aliasing, rename the shared memory token to 'sharing.
This patch only addresses style, and performs no functional changes. To ease
reviwing, the patch was left as a stand-alone last-slot addition to the queue
to avoid propagating changes throughout the whole series.
Signed-off-by: Andres Lagar-Cavilla <andres@lagarcavilla.org>
diff -r 88856b776fcf -r f09f62ae92b7 xen/arch/x86/mm/mem_sharing.c
--- a/xen/arch/x86/mm/mem_sharing.c
+++ b/xen/arch/x86/mm/mem_sharing.c
@@ -64,19 +64,19 @@ static void _free_pg_shared_info(struct
static inline void audit_add_list(struct page_info *page)
{
- INIT_LIST_HEAD(&page->shared_info->entry);
+ INIT_LIST_HEAD(&page->sharing->entry);
spin_lock(&shr_audit_lock);
- list_add_rcu(&page->shared_info->entry, &shr_audit_list);
+ list_add_rcu(&page->sharing->entry, &shr_audit_list);
spin_unlock(&shr_audit_lock);
}
static inline void audit_del_list(struct page_info *page)
{
spin_lock(&shr_audit_lock);
- list_del_rcu(&page->shared_info->entry);
+ list_del_rcu(&page->sharing->entry);
spin_unlock(&shr_audit_lock);
- INIT_RCU_HEAD(&page->shared_info->rcu_head);
- call_rcu(&page->shared_info->rcu_head, _free_pg_shared_info);
+ INIT_RCU_HEAD(&page->sharing->rcu_head);
+ call_rcu(&page->sharing->rcu_head, _free_pg_shared_info);
}
#else
@@ -86,7 +86,7 @@ static inline void audit_del_list(struct
#define audit_add_list(p) ((void)0)
static inline void audit_del_list(struct page_info *page)
{
- xfree(page->shared_info);
+ xfree(page->sharing);
}
#endif /* MEM_SHARING_AUDIT */
@@ -171,7 +171,7 @@ static inline gfn_info_t *mem_sharing_gf
gfn_info->gfn = gfn;
gfn_info->domain = d->domain_id;
INIT_LIST_HEAD(&gfn_info->list);
- list_add(&gfn_info->list, &page->shared_info->gfns);
+ list_add(&gfn_info->list, &page->sharing->gfns);
/* Increment our number of shared pges. */
atomic_inc(&d->shr_pages);
@@ -220,14 +220,14 @@ static void mem_sharing_audit(void)
list_for_each_rcu(ae, &shr_audit_list)
{
- struct page_sharing_info *shared_info;
+ struct page_sharing_info *pg_shared_info;
unsigned long nr_gfns = 0;
struct page_info *pg;
struct list_head *le;
mfn_t mfn;
- shared_info = list_entry(ae, struct page_sharing_info, entry);
- pg = shared_info->pg;
+ pg_shared_info = list_entry(ae, struct page_sharing_info, entry);
+ pg = pg_shared_info->pg;
mfn = page_to_mfn(pg);
/* If we can't lock it, it's definitely not a shared page */
@@ -265,7 +265,7 @@ static void mem_sharing_audit(void)
}
/* Check we have a list */
- if ( (!pg->shared_info) || (list_empty(&pg->shared_info->gfns)) )
+ if ( (!pg->sharing) || (list_empty(&pg->sharing->gfns)) )
{
MEM_SHARING_DEBUG("mfn %lx shared, but empty gfn list!\n",
mfn_x(mfn));
@@ -277,7 +277,7 @@ static void mem_sharing_audit(void)
count_found++;
/* Check if all GFNs map to the MFN, and the p2m types */
- list_for_each(le, &pg->shared_info->gfns)
+ list_for_each(le, &pg->sharing->gfns)
{
struct domain *d;
p2m_type_t t;
@@ -630,7 +630,7 @@ int mem_sharing_nominate_page(struct dom
"grab page %lx dom %d\n", gfn, mfn_x(mfn), d->domain_id);
BUG();
}
- *phandle = pg->shared_info->handle;
+ *phandle = pg->sharing->handle;
ret = 0;
mem_sharing_page_unlock(pg);
goto out;
@@ -655,24 +655,24 @@ int mem_sharing_nominate_page(struct dom
/* Initialize the shared state */
ret = -ENOMEM;
- if ( (page->shared_info =
+ if ( (page->sharing =
xmalloc(struct page_sharing_info)) == NULL )
{
/* Making a page private atomically unlocks it */
BUG_ON(page_make_private(d, page) != 0);
goto out;
}
- page->shared_info->pg = page;
- INIT_LIST_HEAD(&page->shared_info->gfns);
+ page->sharing->pg = page;
+ INIT_LIST_HEAD(&page->sharing->gfns);
/* Create the handle */
- page->shared_info->handle = get_next_handle();
+ page->sharing->handle = get_next_handle();
/* Create the local gfn info */
if ( (gfn_info = mem_sharing_gfn_alloc(page, d, gfn)) == NULL )
{
- xfree(page->shared_info);
- page->shared_info = NULL;
+ xfree(page->sharing);
+ page->sharing = NULL;
BUG_ON(page_make_private(d, page) != 0);
goto out;
}
@@ -685,8 +685,8 @@ int mem_sharing_nominate_page(struct dom
* The mfn needs to revert back to rw type. This should never fail,
* since no-one knew that the mfn was temporarily sharable */
mem_sharing_gfn_destroy(d, gfn_info);
- xfree(page->shared_info);
- page->shared_info = NULL;
+ xfree(page->sharing);
+ page->sharing = NULL;
/* NOTE: We haven't yet added this to the audit list. */
BUG_ON(page_make_private(d, page) != 0);
goto out;
@@ -698,7 +698,7 @@ int mem_sharing_nominate_page(struct dom
/* Update m2p entry to SHARED_M2P_ENTRY */
set_gpfn_from_mfn(mfn_x(mfn), SHARED_M2P_ENTRY);
- *phandle = page->shared_info->handle;
+ *phandle = page->sharing->handle;
audit_add_list(page);
mem_sharing_page_unlock(page);
ret = 0;
@@ -769,14 +769,14 @@ int mem_sharing_share_pages(struct domai
ASSERT(cmfn_type == p2m_ram_shared);
/* Check that the handles match */
- if ( spage->shared_info->handle != sh )
+ if ( spage->sharing->handle != sh )
{
ret = XEN_DOMCTL_MEM_SHARING_S_HANDLE_INVALID;
mem_sharing_page_unlock(secondpg);
mem_sharing_page_unlock(firstpg);
goto err_out;
}
- if ( cpage->shared_info->handle != ch )
+ if ( cpage->sharing->handle != ch )
{
ret = XEN_DOMCTL_MEM_SHARING_C_HANDLE_INVALID;
mem_sharing_page_unlock(secondpg);
@@ -785,7 +785,7 @@ int mem_sharing_share_pages(struct domai
}
/* Merge the lists together */
- list_for_each_safe(le, te, &cpage->shared_info->gfns)
+ list_for_each_safe(le, te, &cpage->sharing->gfns)
{
gfn = list_entry(le, gfn_info_t, list);
/* Get the source page and type, this should never fail:
@@ -793,18 +793,18 @@ int mem_sharing_share_pages(struct domai
BUG_ON(!get_page_and_type(spage, dom_cow, PGT_shared_page));
/* Move the gfn_info from client list to source list */
list_del(&gfn->list);
- list_add(&gfn->list, &spage->shared_info->gfns);
+ list_add(&gfn->list, &spage->sharing->gfns);
put_page_and_type(cpage);
d = get_domain_by_id(gfn->domain);
BUG_ON(!d);
BUG_ON(set_shared_p2m_entry(d, gfn->gfn, smfn) == 0);
put_domain(d);
}
- ASSERT(list_empty(&cpage->shared_info->gfns));
+ ASSERT(list_empty(&cpage->sharing->gfns));
/* Clear the rest of the shared state */
audit_del_list(cpage);
- cpage->shared_info = NULL;
+ cpage->sharing = NULL;
mem_sharing_page_unlock(secondpg);
mem_sharing_page_unlock(firstpg);
@@ -848,7 +848,7 @@ int mem_sharing_add_to_physmap(struct do
ASSERT(smfn_type == p2m_ram_shared);
/* Check that the handles match */
- if ( spage->shared_info->handle != sh )
+ if ( spage->sharing->handle != sh )
goto err_unlock;
/* Make sure the target page is a hole in the physmap */
@@ -920,7 +920,7 @@ int mem_sharing_unshare_page(struct doma
BUG();
}
- list_for_each(le, &page->shared_info->gfns)
+ list_for_each(le, &page->sharing->gfns)
{
gfn_info = list_entry(le, gfn_info_t, list);
if ( (gfn_info->gfn == gfn) && (gfn_info->domain == d->domain_id) )
@@ -933,13 +933,13 @@ int mem_sharing_unshare_page(struct doma
gfn_found:
/* Do the accounting first. If anything fails below, we have bigger
* bigger fish to fry. First, remove the gfn from the list. */
- last_gfn = list_has_one_entry(&page->shared_info->gfns);
+ last_gfn = list_has_one_entry(&page->sharing->gfns);
mem_sharing_gfn_destroy(d, gfn_info);
if ( last_gfn )
{
/* Clean up shared state */
audit_del_list(page);
- page->shared_info = NULL;
+ page->sharing = NULL;
atomic_dec(&nr_shared_mfns);
}
else
diff -r 88856b776fcf -r f09f62ae92b7 xen/include/asm-x86/mm.h
--- a/xen/include/asm-x86/mm.h
+++ b/xen/include/asm-x86/mm.h
@@ -57,7 +57,7 @@ struct page_info
* of sharing share the version they expect to.
* This list is allocated and freed when a page is shared/unshared.
*/
- struct page_sharing_info *shared_info;
+ struct page_sharing_info *sharing;
};
/* Reference count and various PGC_xxx flags and fields. */
next prev parent reply other threads:[~2012-01-26 3:32 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-26 3:32 [PATCH 00 of 13] Sharing overhaul V4 Andres Lagar-Cavilla
2012-01-26 3:32 ` [PATCH 01 of 13] x86/mm: Eliminate hash table in sharing code as index of shared mfns Andres Lagar-Cavilla
2012-01-26 3:32 ` [PATCH 02 of 13] x86/mm: Update mem sharing interface to (re)allow sharing of grants Andres Lagar-Cavilla
2012-01-26 3:32 ` [PATCH 03 of 13] x86/mm: Add per-page locking for memory sharing, when audits are disabled Andres Lagar-Cavilla
2012-01-26 3:32 ` [PATCH 04 of 13] x86/mm: Enforce lock ordering for sharing page locks Andres Lagar-Cavilla
2012-01-26 3:32 ` [PATCH 05 of 13] x86/mm: Check how many mfns are shared, in addition to how many are saved Andres Lagar-Cavilla
2012-01-26 3:32 ` [PATCH 06 of 13] x86/mm: New domctl: add a shared page to the physmap Andres Lagar-Cavilla
2012-01-26 3:32 ` [PATCH 07 of 13] Add the ability to poll stats about shared memory via the console Andres Lagar-Cavilla
2012-01-26 3:32 ` [PATCH 08 of 13] x86/mm: use RCU in mem sharing audit list, eliminate global lock completely Andres Lagar-Cavilla
2012-01-26 3:32 ` [PATCH 09 of 13] Update memshr API and tools Andres Lagar-Cavilla
2012-01-26 3:32 ` [PATCH 10 of 13] Tools: Expose to libxc the total number of shared frames and space saved Andres Lagar-Cavilla
2012-01-26 3:32 ` [PATCH 11 of 13] Tools: Add a sharing command to xl for information about shared pages Andres Lagar-Cavilla
2012-01-26 3:32 ` [PATCH 12 of 13] Memshrtool: tool to test and exercise the sharing subsystem Andres Lagar-Cavilla
2012-01-27 18:21 ` Ian Jackson
2012-01-27 18:27 ` Andres Lagar-Cavilla
2012-01-26 3:32 ` Andres Lagar-Cavilla [this message]
2012-01-26 12:54 ` [PATCH 00 of 13] Sharing overhaul V4 Tim Deegan
2012-01-26 13:08 ` Andres Lagar-Cavilla
2012-01-26 13:16 ` Olaf Hering
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=f09f62ae92b7a8be9989.1327548757@xdev.gridcentric.ca \
--to=andres@lagarcavilla.org \
--cc=JBeulich@suse.com \
--cc=adin@gridcentric.ca \
--cc=andres@gridcentric.ca \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@citrix.com \
--cc=keir.xen@gmail.com \
--cc=tim@xen.org \
--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.