From mboxrd@z Thu Jan 1 00:00:00 1970 From: tupeng212 Subject: Re: alloc_heap_pages is low efficient with more CPUs Date: Sat, 13 Oct 2012 15:20:06 +0800 Message-ID: <2012101315200385948426@gmail.com> References: Reply-To: tupeng212 Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5113940801194745422==" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Keir Fraser Cc: xen-devel List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --===============5113940801194745422== Content-Type: multipart/alternative; boundary="----=_001_NextPart145575654011_=----" This is a multi-part message in MIME format. ------=_001_NextPart145575654011_=---- Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 LyogQWxsb2NhdGUgMl5Ab3JkZXIgY29udGlndW91cyBwYWdlcy4gKi8NCnN0YXRpYyBzdHJ1Y3Qg cGFnZV9pbmZvICphbGxvY19oZWFwX3BhZ2VzKA0KICAgIHVuc2lnbmVkIGludCB6b25lX2xvLCB1 bnNpZ25lZCBpbnQgem9uZV9oaSwNCiAgICB1bnNpZ25lZCBpbnQgbm9kZSwgdW5zaWduZWQgaW50 IG9yZGVyLCB1bnNpZ25lZCBpbnQgbWVtZmxhZ3MpDQp7DQogICAgY3B1c19jbGVhcihtYXNrKTsN CiAgICBmb3IgKCBpID0gMDsgaSA8ICgxIDw8IG9yZGVyKTsgaSsrICkNCiAgICB7ICAgIA0KICAg ICAgICBpZiAoIHBnW2ldLnUuZnJlZS5uZWVkX3RsYmZsdXNoICkNCiAgICAgICAgew0KICAgICAg ICAgICAgLyogQWRkIGluIGV4dHJhIENQVXMgdGhhdCBuZWVkIGZsdXNoaW5nIGJlY2F1c2Ugb2Yg dGhpcyBwYWdlLiAqLw0KICAgICAgICAgICAgY3B1c19hbmRub3QoZXh0cmFfY3B1c19tYXNrLCBj cHVfb25saW5lX21hcCwgbWFzayk7DQogICAgICAgICAgICB0bGJmbHVzaF9maWx0ZXIoZXh0cmFf Y3B1c19tYXNrLCBwZ1tpXS50bGJmbHVzaF90aW1lc3RhbXApOw0KICAgICAgICAgICAgY3B1c19v cihtYXNrLCBtYXNrLCBleHRyYV9jcHVzX21hc2spOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlm ICggdW5saWtlbHkoIWNwdXNfZW1wdHkobWFzaykpICkNCiAgICB7DQogICAgICAgIHBlcmZjX2lu Y3IobmVlZF9mbHVzaF90bGJfZmx1c2gpOw0KICAgICAgICBmbHVzaF90bGJfbWFzaygmbWFzayk7 DQogICAgfQ0KICAgIHJldHVybiBwZzsNCn0NCg0KSXMgdGhpcyBlcXVhbCB0byA6IGluIHBnWzE8 PG9yZGVyLTFdLnUuZnJlZS5uZWVkX3RsYmZsdXNoLCBpZiB3ZSBjb21wdXRlIG1hc2s9MCwgdGhl biBmbHVzaCBUTEIgbWFzayA/IA== ------=_001_NextPart145575654011_=---- Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable
/* Allocate 2^@order contiguous pages. */
static struct page_info *alloc_heap_pages(
    unsigned int zone_lo, unsigned=  int zone_hi,
    unsigned int node, unsigned&nb= sp;int order, unsigned int memflags)
{
    cpus_clear(mask);
    for ( i =3D 0; i&nbs= p;< (1 << order); i++ )
    {    
        if ( pg[i].= u.free.need_tlbflush )
        {
           &nb= sp;/* Add in extra CPUs that need flush= ing because of this page. */
           &nb= sp;cpus_andnot(extra_cpus_mask, cpu_online_map, mask);
           &nb= sp;tlbflush_filter(extra_cpus_mask, pg[i].tlbflush_timestamp);
           &nb= sp;cpus_or(mask, mask, extra_cpus_mask);
        }
    }
    if ( unlikely(!cpus_empty(mask))&nb= sp;)
    {
        perfc_incr(need_flush= _tlb_flush);
        flush_tlb_mask(&m= ask);
    }
    return pg;
}
 
Is this equal to : in pg[1<<order-1].u.free.need_tlbflush, if= we=20 compute mask=3D0, then flush TLB mask ?
 
------=_001_NextPart145575654011_=------ --===============5113940801194745422== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --===============5113940801194745422==--