Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp744812ybt; Fri, 26 Jun 2020 10:28:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwqEqRuZ+p8hqaV1mWsj7XLJSd9yYZg8Arxrfd5/bM+kkDUdfPWdw6GhZeagZSaToQjCNBA X-Received: by 2002:aa7:dcc8:: with SMTP id w8mr4564809edu.305.1593192520610; Fri, 26 Jun 2020 10:28:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593192520; cv=none; d=google.com; s=arc-20160816; b=uN/8nm9u8xMP3xSMIxknngcErhJ4BFtO77YfccNN356TCbe3y1yeDrcjhQe9NcwB1J 7WH2+BvHNIeCbdjeUNItPdWu6Y35yeNPH0VHZaFyRm4lfetpeoB4cPUegrUOtHduOW9Q 5LufRxJj2fL0/9eIOy7dNh2chPYxN+kCdxNqVDcN9YZMYbO/fqCX9T8J4G143JBtWS9O IqM93f+ObtLGiAA+xfDRGw8K5aevAwqn09NDj/3QaWzXFgTfH2PYzMlUoXX55jg9xNrs 3WH75w26kx0Vgi75doWV9BtTQPEIIax1BrVeHe+hUxnd9qdXNhMvXWm2e1C3rvMQ8QPQ ixdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date; bh=vUtGndyedgX9poPi37UKQSFNpP8JWMHGTjYng7Xfvg4=; b=krrMYSvomVwOO+yC16H5u1KbxYsz3yGrkk9aLQShj9a8uxxCmCoVmk6A4VLAhJemAV AXVUZSBGc6aRzC9YlotZSsFGHwnstHcyp71fgXiN3dgNnAdiuDmbaJYyQ2bOA289GaYQ 4M7mlKxOyTcPA63+D2eAEp7wKt4kzJdshOm2x+YOWkB0/1FCxZZfjnxwo0n7EjM5yH4S C+0CHsrtdUQc31mWrXsTcTews1XMUcUdVP+uAotrdif3VFEte2qEYhU2eFIr+WZN7E0f pyTpp+OesFnHFuWdUnHT65y2+AYA5mOGLrFqJyUwMEVV5CE5Zn6ks11tANen4HE5cKQn 37yg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i9si20267543edn.437.2020.06.26.10.28.17; Fri, 26 Jun 2020 10:28:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726342AbgFZRXE (ORCPT + 99 others); Fri, 26 Jun 2020 13:23:04 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:15400 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725793AbgFZRXE (ORCPT ); Fri, 26 Jun 2020 13:23:04 -0400 Received: from pps.filterd (m0098409.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 05QH2ASY046541; Fri, 26 Jun 2020 13:23:01 -0400 Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 31wkbgbjhc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 26 Jun 2020 13:23:01 -0400 Received: from m0098409.ppops.net (m0098409.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 05QH3V6t054082; Fri, 26 Jun 2020 13:23:00 -0400 Received: from ppma06ams.nl.ibm.com (66.31.33a9.ip4.static.sl-reverse.com [169.51.49.102]) by mx0a-001b2d01.pphosted.com with ESMTP id 31wkbgbjgp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 26 Jun 2020 13:23:00 -0400 Received: from pps.filterd (ppma06ams.nl.ibm.com [127.0.0.1]) by ppma06ams.nl.ibm.com (8.16.0.42/8.16.0.42) with SMTP id 05QHLgt5030416; Fri, 26 Jun 2020 17:22:58 GMT Received: from b06cxnps3075.portsmouth.uk.ibm.com (d06relay10.portsmouth.uk.ibm.com [9.149.109.195]) by ppma06ams.nl.ibm.com with ESMTP id 31uusjk676-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 26 Jun 2020 17:22:58 +0000 Received: from d06av26.portsmouth.uk.ibm.com (d06av26.portsmouth.uk.ibm.com [9.149.105.62]) by b06cxnps3075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 05QHMt1D55902410 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 26 Jun 2020 17:22:55 GMT Received: from d06av26.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 997AFAE056; Fri, 26 Jun 2020 17:22:55 +0000 (GMT) Received: from d06av26.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3472DAE053; Fri, 26 Jun 2020 17:22:55 +0000 (GMT) Received: from thinkpad (unknown [9.171.60.45]) by d06av26.portsmouth.uk.ibm.com (Postfix) with SMTP; Fri, 26 Jun 2020 17:22:55 +0000 (GMT) Date: Fri, 26 Jun 2020 19:22:53 +0200 From: Gerald Schaefer To: David Hildenbrand Cc: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org, linux-mm@kvack.org, Heiko Carstens , Vasily Gorbik , Christian Borntraeger , Andrew Morton Subject: Re: [PATCH RFC] s390x/vmem: get rid of memory segment list Message-ID: <20200626192253.2281d95d@thinkpad> In-Reply-To: <20200625150029.45019-1-david@redhat.com> References: <20200625150029.45019-1-david@redhat.com> X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216,18.0.687 definitions=2020-06-26_08:2020-06-26,2020-06-26 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 mlxscore=0 phishscore=0 suspectscore=0 spamscore=0 mlxlogscore=922 impostorscore=0 cotscore=-2147483648 clxscore=1015 malwarescore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000 definitions=main-2006260116 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 25 Jun 2020 17:00:29 +0200 David Hildenbrand wrote: > I can't come up with a satisfying reason why we still need the memory > segment list. We used to represent in the list: > - boot memory > - standby memory added via add_memory() > - loaded dcss segments > > When loading/unloading dcss segments, we already track them in a > separate list and check for overlaps > (arch/s390/mm/extmem.c:segment_overlaps_others()) when loading segments. > > The overlap check was introduced for some segments in > commit b2300b9efe1b ("[S390] dcssblk: add >2G DCSSs support and stacked > contiguous DCSSs support.") > and was extended to cover all dcss segments in > commit ca57114609d1 ("s390/extmem: remove code for 31 bit addressing > mode"). > > Although I doubt that overlaps with boot memory and standby memory > are relevant, let's reshuffle the checks in load_segment() to request > the resource first. This will bail out in case we have overlaps with > other resources (esp. boot memory and standby memory). The order > is now different compared to segment_unload() and segment_unload(), but > that should not matter. You are right that this is ancient, but I think "overlaps with boot memory and standby memory" were very relevant, that might actually have been the initial reason for this in ancient times (but I do not really remember). With DCSS you can define a fixed start address where the segment will be loaded into guest address space. The current code queries this address and directly gives it to vmem_add_mapping(), at least if there is no overlap with other DCSS segments. If there would be an overlap with boot memory, and not checked / rejected in vmem_add_mapping(), the following dcss_diag() would probably fail because AFAIR z/VM will not allow loading a DCSS with guest memory overlap. So far, so good, but the vmem_remove_mapping() on the exit path would then remove (part of) boot memory. That being said, I think your patch prevents this by moving request_resource() up, so we should not call vmem_add_mapping() for such overlaps. I still want to give it some test, but need to find / setup systems with that ancient technology first :-) One change introduced by this patch is that we no longer see -ENOSPC and the corresponding error message from extmem code: "DCSS %s overlaps with used storage and cannot be loaded" Instead, now we would see -EBUSY and this message: "%s needs used memory resources and cannot be loaded or queried" That should be OK, as it is also the same message that we already see for overlaps with other DCSSs. But you probably also should remove that case from the segment_warning() function for completeness. Regards, Gerald