Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp510122imm; Mon, 21 May 2018 09:33:11 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqhOP6rygfV0TbT/6FASP3VAI5rFuL23xOvuWdztfwhfcrOV/zkNIL2O53hspfFzAr4k+5g X-Received: by 2002:a62:3889:: with SMTP id f131-v6mr20656979pfa.173.1526920391575; Mon, 21 May 2018 09:33:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526920391; cv=none; d=google.com; s=arc-20160816; b=YBqy2CRKL3htVODdi+vjgJ+2I4zSmWWzuZ3faWexbSJoI65Tty4eRsLg5l2jhUD2Ck pgKdySeyuoeZxiR8nxrJKvPzau4w8yk6I4zsrpQk8Dbe+Yxw6S/pjnLNuAJKrp6zoEaW o+T4QNcnb4ZOIt6XVBQRTTV1frcKGavZ5ayfp8KwmSWr4vQU6TaPEFgJvJtpXuf7GMar FQWKaxVIiIY4AbUFe0GbpQXmyp1zVuH3/OE708cdJX+miAS+22HBxF3DAPXPTNjxgti/ m4RwrEn0kQVyEYK3XKSxID6ueu1nv0aj7mx/AHLelMxCwrm837l6AVpB66QjPPO8RVBD VK5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:autocrypt:openpgp:from:references:cc:to:subject :dkim-signature:arc-authentication-results; bh=1mQQT7GXppEqmr8V3bik5LjkfSU0p20Wrz9VzK4hgx0=; b=VHxxxTNtzUU27KaCYtkFzmVr/hJdfhPa6KCR6bebFtaMt9Kixqii9P+yTGB1BdC4zm ZuhWlb5ALG9gwuCzj938xBrn1dncalOUjEkcWTf971I4d80Q0ph0B2ug5vDWaIFKCD1y i/EduJepHBeiZGuwA+OTE1v3U3r10HgbBPj5guUYWZk60bNJbrD3ZE50FYccC+hmUQEH jpGH2BtvDZUCGPpj415ziOUB6XIytanf+IXZyz9464ezZEifevBVbAgeZau9ps2EIiLX qwPMkl8ZyohWFCQ2HnojDxn4Rp262BRxKM4c/1ZtyqKOoLkqCcb4RO1XZAP+iHKwwljp RDUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2017-10-26 header.b=dhLy4e6W; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z86-v6si14654755pfa.120.2018.05.21.09.32.56; Mon, 21 May 2018 09:33:11 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2017-10-26 header.b=dhLy4e6W; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753024AbeEUQcp (ORCPT + 99 others); Mon, 21 May 2018 12:32:45 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:44166 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752824AbeEUQcm (ORCPT ); Mon, 21 May 2018 12:32:42 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w4LGUnOD181702; Mon, 21 May 2018 16:32:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : to : cc : references : from : message-id : date : mime-version : in-reply-to : content-type : content-transfer-encoding; s=corp-2017-10-26; bh=1mQQT7GXppEqmr8V3bik5LjkfSU0p20Wrz9VzK4hgx0=; b=dhLy4e6W2gvVy29383InC3EzGCKCQnsq7avkLbkFc15wEItRtJp1UKtgicb6yTjWrNHs UxnNAizNgyGlAQM6vbIfpZtwQfh5XjhzEtuhaxblqRLOAEW5YZlZRY/813wTrLsZY9E6 QJm93t1dFJ4KYXbtL50D/5J8U8LMjPW6ri3BDNuijQ3K/QGrIn7QR+dk4rgtjzbACuy/ xd4ItgbSqL2GTk2w8OM0K21fu7tz427cdoB4k1OudJP67TRrnllJz8JM1WTeDW8Faj1W BPZB9V7+4mr1Fl2aMCwNvTwMdBhekggk2xeVQ1mLp7RF4PMEHnjMXAcqye/ZeTVsGHYP yw== Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by userp2120.oracle.com with ESMTP id 2j2ck9d02p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 May 2018 16:32:27 +0000 Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by userv0022.oracle.com (8.14.4/8.14.4) with ESMTP id w4LGWR5o009252 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 May 2018 16:32:27 GMT Received: from abhmp0018.oracle.com (abhmp0018.oracle.com [141.146.116.24]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id w4LGWQn4012522; Mon, 21 May 2018 16:32:26 GMT Received: from dhcp-burlington7-2nd-B-east-10-152-55-162.usdhcp.oraclecorp.com (/10.152.32.65) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 21 May 2018 09:32:26 -0700 Subject: Re: [Xen-devel] [RFC 1/3] xen/balloon: Allow allocating DMA buffers To: Oleksandr Andrushchenko , xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org, jgross@suse.com, konrad.wilk@oracle.com Cc: daniel.vetter@intel.com, matthew.d.roper@intel.com, dongwon.kim@intel.com, Oleksandr Andrushchenko References: <20180517082604.14828-1-andr2000@gmail.com> <20180517082604.14828-2-andr2000@gmail.com> <6a108876-19b7-49d0-3de2-9e10f984736c@oracle.com> <9541926e-001a-e41e-317c-dbff6d687761@gmail.com> From: Boris Ostrovsky Openpgp: preference=signencrypt Autocrypt: addr=boris.ostrovsky@oracle.com; prefer-encrypt=mutual; keydata= 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 Jg6OxFYd01z+a+oL Message-ID: <218e2bf7-490d-f89e-9866-27b7e3dbc835@oracle.com> Date: Mon, 21 May 2018 12:35:41 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <9541926e-001a-e41e-317c-dbff6d687761@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8900 signatures=668700 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1805210197 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/21/2018 01:40 AM, Oleksandr Andrushchenko wrote: > On 05/19/2018 01:04 AM, Boris Ostrovsky wrote: >> On 05/17/2018 04:26 AM, Oleksandr Andrushchenko wrote: >>> From: Oleksandr Andrushchenko >> >> A commit message would be useful. > Sure, v1 will have it >> >>> Signed-off-by: Oleksandr Andrushchenko >>> >>> >>>       for (i = 0; i < nr_pages; i++) { >>> -        page = alloc_page(gfp); >>> -        if (page == NULL) { >>> -            nr_pages = i; >>> -            state = BP_EAGAIN; >>> -            break; >>> +        if (ext_pages) { >>> +            page = ext_pages[i]; >>> +        } else { >>> +            page = alloc_page(gfp); >>> +            if (page == NULL) { >>> +                nr_pages = i; >>> +                state = BP_EAGAIN; >>> +                break; >>> +            } >>>           } >>>           scrub_page(page); >>>           list_add(&page->lru, &pages); >>> @@ -529,7 +565,7 @@ static enum bp_state >>> decrease_reservation(unsigned long nr_pages, gfp_t gfp) >>>       i = 0; >>>       list_for_each_entry_safe(page, tmp, &pages, lru) { >>>           /* XENMEM_decrease_reservation requires a GFN */ >>> -        frame_list[i++] = xen_page_to_gfn(page); >>> +        frames[i++] = xen_page_to_gfn(page); >>>     #ifdef CONFIG_XEN_HAVE_PVMMU >>>           /* >>> @@ -552,18 +588,22 @@ static enum bp_state >>> decrease_reservation(unsigned long nr_pages, gfp_t gfp) >>>   #endif >>>           list_del(&page->lru); >>>   -        balloon_append(page); >>> +        if (!ext_pages) >>> +            balloon_append(page); >> >> So what you are proposing is not really ballooning. You are just >> piggybacking on existing interfaces, aren't you? > Sort of. Basically I need to {increase|decrease}_reservation, not > actually > allocating ballooned pages. > Do you think I can simply EXPORT_SYMBOL for > {increase|decrease}_reservation? > Any other suggestion? I am actually wondering how much of that code you end up reusing. You pretty much create new code paths in both routines and common code ends up being essentially the hypercall. So the question is --- would it make sense to do all of this separately from the balloon driver? -boris