From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id E522FC00140 for ; Fri, 12 Aug 2022 17:58:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D691E8E0006; Fri, 12 Aug 2022 13:58:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D186F8E0001; Fri, 12 Aug 2022 13:58:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B920B8E0006; Fri, 12 Aug 2022 13:58:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id A9DB98E0001 for ; Fri, 12 Aug 2022 13:58:02 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 7A94B120AC5 for ; Fri, 12 Aug 2022 17:58:02 +0000 (UTC) X-FDA: 79791699204.27.5805CAF Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by imf05.hostedemail.com (Postfix) with ESMTP id 66126100194 for ; Fri, 12 Aug 2022 17:58:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1660327080; x=1691863080; h=from:to:cc:subject:date:message-id:mime-version; bh=hjPBQAi+Way7hfHZCVxrygV1v6rkYYSZrCDNZSGEPcY=; b=MhRKAVRkSNlRCs/MqsYhXIUQJ6eiWc1Pc14Uwb2ljZisNaxBHOoVo3PL SHWnCtR1WrNgqFtkkkGm1bqDQLHmoCLZLlGtreXzs4mTjbQ14yoR0V0H7 ZV775/ni5axWW0HiHUsncjLzBVuhtfavo0BAALa2/YCAnxv+QUGTSqd2+ AtdFujPAuasKJnmLjWCvZf56QBpNx8WXu230PanxRf3FcCL5AeQl1Z14B RV/ARgBwruCWdMJKBK/JG+bZM+vrOkvoAwpSaJLixtag42rmYsM0nL3aX xTLx/8srxrwOBLW8TiLGR7rEFFRfEKDexKlGGT9TpYYkfzodg48gHplgb Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10437"; a="274706926" X-IronPort-AV: E=Sophos;i="5.93,233,1654585200"; d="scan'208,217";a="274706926" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Aug 2022 10:57:38 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,233,1654585200"; d="scan'208,217";a="609330581" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga007.fm.intel.com with ESMTP; 12 Aug 2022 10:57:37 -0700 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28; Fri, 12 Aug 2022 10:57:37 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28 via Frontend Transport; Fri, 12 Aug 2022 10:57:37 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.175) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.28; Fri, 12 Aug 2022 10:57:37 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JksH1vRu18LJ92IZDTtMOXjuvXAUVF5JDe4v/FIqdoE7Nt2TNAR1tQmr3srD+Jw0PDZj64QDERiGphqQQ2h1qRvrvfuJl71mMa68t002n75KXFXd4qRogulNMgRDbkvfW/SLrGTMQh1oT1isr2RypZdfbR0gER/kq6BeMf5QCJOfoV79H/5tkekIIOmdBwXtQSDkqwpPs9en5AhnIFGOKCWauw43jdbcCM7lprjgz+fYQJZ3nDNkxnlxUQq9O76pWJYdag/onrrvBIfVot351T7VEvVCRvmiaZlhY1Hn1KlGAbaVqVAdNbcUXK5Q+cKVFGxzZlEuULuGNRZsAqbtHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=mDMsNUP+BkLc64MUi/Uu61DxQZFlv8C1ZpAUakp4qC0=; b=cg+4xhcCYWChCVClcDIgbuhPFKzcpUAQXOPARuh6GMECvBQrd6L4dimblknaR2837HfYO2+Rm25S41O06gxyrToPUvIn7Xi5qVYp9j46f8iwENYkwObplGqoHN9dU+o+0pTs+xPrv3s3Zws5r0XLB7XIWAPsWOdf7UpoQ0WHgJ1V39Rq0cF+pDdq1hhw61Ix8IjMgY/Qxfsj2yNq403j30b9NgyQT8RPC6bbR6vCFVmyG2UlmQT0zShUT0a6cVbAG5O14mNw1+z0uoKCjBafuiqjRmT4Vkky+p7lhYq6QPaKSDGBN0r5zX/HCtnVOfNooUPBxdvQd6s95tmGlbNb4g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM6PR11MB3978.namprd11.prod.outlook.com (2603:10b6:5:19a::14) by MWHPR1101MB2110.namprd11.prod.outlook.com (2603:10b6:301:4f::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.17; Fri, 12 Aug 2022 17:57:35 +0000 Received: from DM6PR11MB3978.namprd11.prod.outlook.com ([fe80::a186:a69e:dd1a:73ac]) by DM6PR11MB3978.namprd11.prod.outlook.com ([fe80::a186:a69e:dd1a:73ac%4]) with mapi id 15.20.5525.011; Fri, 12 Aug 2022 17:57:35 +0000 From: "Pulavarty, Badari" To: "damon@lists.linux.dev" CC: "linux-mm@kvack.org" Subject: [PATCH] DAMON dbgfs_mk_context() error handling Thread-Topic: [PATCH] DAMON dbgfs_mk_context() error handling Thread-Index: AdiudOFBs633W+u/TQqbWM6Jp+pMmg== Date: Fri, 12 Aug 2022 17:57:35 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.500.17 dlp-reaction: no-action x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 85a32366-3ed2-4944-f77f-08da7c8c2329 x-ms-traffictypediagnostic: MWHPR1101MB2110:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Br6uv0Ze6QaPZezJP6KwyiMIzyDXUsx/1FkNeSPcRyRR68m8VTVX8PnmekYIgokeXGSWakrsTf8EtMcxR6CGTbiswsHWNXakZANt7DpePFfI+PB9FzSFizhZh0mtROVBeyP4l9wwL7NygIeFRGTxOgXHVCYau6TMvzslrYs2UWQUnSw1yNtwQ8V1pz9jLBQLJJ+89veyUj8aPJvtCUzjAIOCKiDxVyB1VKVe0bQWHqbkxmdCdPkLqL9I9I2hvtKOYLt4WvDtYpALVCcrq2MJPzTyp2/E70AtS1ZjqdhuAkkIdySN4qcFvekslifz63cK7ZT1Ag6z8qwtcf3SNlsus5QMOqPUtlxRLzIehQAUcQ4x74FBDyNTlWgAGXmRdao3ZLinQAXl0P/BKjZdAaDdGRBcGS13dDr/3ahelJhZJoS8riYzHAfNGDLnOlDU7fWBJRv4Vukuw4p4wLmsaojplqvjl5q7x/Zn1ie4AosAvAoIEA2mr5OWtXRFj9irFuTycixniabaNPNdLMcEiqeI9HLJqxdwK/H2fwO1gAQ3gcYAtf9E0sDjVjnkdioFdcuhJhDYoLmLPltEY3qByQnw2roEkEUj8PeZDIsd2v/47kav7oWUwL1sjDLdLdoefDkHaITWZwCMZA8oF6C+GPzA6QEkEU4CDz7J7n1MAAQHKtLDHPrS5DkX9reFnj/0mU15jAybEdta+xq/uI4ymRvqGpRKyQF2Q7VyqQjjLVj6raRzKXLUdCYb7sYXxYrDFU9ffAfISETOcuvBRuluMTG209qGU/IdsYZL4p2qGCWhB8hTMdp+B3dbtdG48tkfFXJn x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB3978.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(136003)(376002)(366004)(346002)(396003)(39860400002)(52536014)(5660300002)(83380400001)(186003)(2906002)(71200400001)(6916009)(478600001)(316002)(6506007)(9686003)(7696005)(26005)(38070700005)(66556008)(66476007)(4326008)(41300700001)(82960400001)(8936002)(76116006)(66446008)(8676002)(33656002)(86362001)(55016003)(66946007)(122000001)(64756008)(38100700002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?rY4rBcXoI8Aiu2KRTdBExN/0rS1r6FvcCZFtxE3n4ST+gt1k6vlcQWFwuRKm?= =?us-ascii?Q?FaMF6tY5vaSqoaU7F7ogntN77ehf1cuA2m+pJEnQaUEuJdEq31L1G6hBsPDJ?= =?us-ascii?Q?35Yimz4+cwVzG07x9CH/826ki4G16nWj5d/ijdQcmXIS3PjZOZxXSXBXF59r?= =?us-ascii?Q?EDovzu9eB2WOhxRQ8ge0fCGH+qvTPtXTZM4jIn5WHSRFCfIaT2Ft8qtlZeqx?= =?us-ascii?Q?7pzxtceERXQWLMua37DOBKqbixwPGcMZ1lT6mW/8PyZDtsGEpfSQtixSMejS?= =?us-ascii?Q?tbb4M2KKCXu1KxMzHC4v9KAy3Y8bL7CIRN8JKBnssF6aXRBbwRAZ0XZVgcnk?= =?us-ascii?Q?jyRF6s+gt5sjePozvZ9mJ7Jvn5piANELEwUWZR4McdSroUHI68p0JNzr1l0P?= =?us-ascii?Q?Ra8qPvEEWvX6S9UZmbCvUOJ1jl2D4znpr9pezc2nCqpRGhDUETrNht1oey7z?= =?us-ascii?Q?oXIvaicn2YKL8OdVwk8oUEZUlgJFEjwig4MIt31u+KDLUxAfAYFNmLxOORmk?= =?us-ascii?Q?oym2UMJAVxLzQfbCfeUk/VM5t/vj5dt58FP3OuyptzDYw/utoXmGa3CkIzVx?= =?us-ascii?Q?ZilgIYjXWOWnYRQ8QtXyvve4HDf+XqpbvKLSjHTWWjnoJ8V16ST4Lpq3pdi/?= =?us-ascii?Q?QYjBFlyucHPrcHRfPmlm4wzdG6z98uIypf5G4a8aw9tmOdOTtzAkuZi5NObQ?= =?us-ascii?Q?f2bu2N48HCiLIPifF4wfdcTSH+jYwDfYCONakXIYaxAJm7Mke64PACy0d/c3?= =?us-ascii?Q?gFRyK+F8mrv9Q73DiPcX9NuIB7WEKEGnPeBHUp5GbSwivUOUsKvqg4h9OKX1?= =?us-ascii?Q?ocwVUJGqTXmc54j3FP1uMSdsNHTYNAgYIZhUqaoAL043s6f4o53rUNt/grWD?= =?us-ascii?Q?Hey02GB5jMYvDj1FE8sZOf4KJ+7RMJc+n9q2zZwwZ6KJ25cPGQHu7sBNMh8U?= =?us-ascii?Q?3Aj8fR2aGcs8lebN/M4ckcyO0gcXVsi1hBQZveFlsh6yu45lKNZ/rroarkF3?= =?us-ascii?Q?QMqKZpdhVspYQZH/8C7j/sAZlBB+lO4YOTO27wPbJGnCEDf6v8G39VTXipvG?= =?us-ascii?Q?9JBUxfXfjPgMYhdWbDUiuG+IgquzIi01vUxbVx6gOlQYF/IuI9g6CbzyOWzw?= =?us-ascii?Q?Vi8XgVR0sCDa1D/S8mwY0WF2hfsDND0AC+Rm8Twe5/g3SniKaP2Uaod36yUO?= =?us-ascii?Q?+fEZd5ADbaEH4bNiFk6ssp5rfgR31/3vE7PQSb0WgAVuRB/RKIiwlXdpvs0b?= =?us-ascii?Q?tdLvhX0EySMQKGH0thjz3J5Q6cD1Ieyl9gR0o9Fw6QnsaepsmeoUG8sXnx0y?= =?us-ascii?Q?0C7OBbTE0AdD9DPrho/ggCYylk0prVIUABVmLGNsEbK3NrinXQjH1eMQW9BJ?= =?us-ascii?Q?ddjIkAPH11olVGHHQiVWSzzw5MNVvPbi4tLhwEPx8q4wl6vpuoOZ+VaK5bXK?= =?us-ascii?Q?S++OQI4DmSW5pIVPr307FDYSOgHFcupRRDxfthxXIUwvbmhYmvCZkZNS1aHZ?= =?us-ascii?Q?U459sWf3LOz9E4owWBRGOOYqtCltG0h41pN+OlQtrzhWT67YrR6Q3PDsYn88?= =?us-ascii?Q?jDwkoYgqn5nT/Qcq4nKb+2PaxsbcNhWGhls/ArL4?= Content-Type: multipart/alternative; boundary="_000_DM6PR11MB39782C920CFA9E25594EF9D59C679DM6PR11MB3978namp_" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB3978.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 85a32366-3ed2-4944-f77f-08da7c8c2329 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Aug 2022 17:57:35.3252 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: vHm2fn6T9T0152AmvNTR2d1D5zUBbiV8NMA8C5RRHdewUqnohuDX2hKUo6gay3JDjyD7PAJjSoLL/MLnJmmklJakHvh+GG7VzuVoCcCN9Lk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1101MB2110 X-OriginatorOrg: intel.com ARC-Authentication-Results: i=2; imf05.hostedemail.com; dkim=none ("invalid DKIM record") header.d=intel.com header.s=Intel header.b=MhRKAVRk; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf05.hostedemail.com: domain of badari.pulavarty@intel.com designates 134.134.136.126 as permitted sender) smtp.mailfrom=badari.pulavarty@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1660327082; a=rsa-sha256; cv=pass; b=Nob3/rQ3rgt7wB5lV0/zAQqAX5sLpMhdReK9pCWJVD3dEDbBUbi7SB9vuKfcFJx2iiWrtZ pizAFn6Mew011RYYMZ5Pbv4a3T6EKN3Wxke2fX4AWk1Des6OAXFNFfQNiP3ARbaTM6opUm ArsWp2EA9NKIgGz33UWfAeWrPvq6/aE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1660327082; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=mDMsNUP+BkLc64MUi/Uu61DxQZFlv8C1ZpAUakp4qC0=; b=es1acb/b7r75mpR/f+lcEhLtz5rFIqizWLqwWn+hot78Gk7dpAwDtT0zv+zM8ajXqseHu7 o39+g8HSA+acQJZopEfVPi5TTurXlvlDURPJVh4gRIAiBFrYXvjHVcKxlL4NgMEtFblMml BZgZgYWj+z7jDB28PXzrjtd0V8tEiY4= Authentication-Results: imf05.hostedemail.com; dkim=none ("invalid DKIM record") header.d=intel.com header.s=Intel header.b=MhRKAVRk; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf05.hostedemail.com: domain of badari.pulavarty@intel.com designates 134.134.136.126 as permitted sender) smtp.mailfrom=badari.pulavarty@intel.com; dmarc=pass (policy=none) header.from=intel.com X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 66126100194 X-Stat-Signature: t4pwdtz8kq6pmif19qfectgk4wi66q1r X-Rspam-User: X-HE-Tag: 1660327080-313116 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: --_000_DM6PR11MB39782C920CFA9E25594EF9D59C679DM6PR11MB3978namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable damon dbgfs_mk_context() does not handle error from debugfs_create_dir() co= rrectly. For example, if one tries to create a context with existing name, debugfs_c= reate_dir() fails with -EEXIST, but dbgfs_mk_context() assumes the call is successful and add= s another entry - which will cause failures when try to enable the monitor. Test case: echo "off" > /sys/kernel/debug/damon/monitor_on echo "abc" > /sys/kernel/debug/damon/mk_context echo "abc" > /sys/kernel/debug/damon/mk_context echo > /sys/kernel/debug/damon/target_ids echo "on" > /sys/kernel/debug/damon/monitor_on <<< fails to enable monitor Signed-off-by: Badari Pulavarty badari.pulavarty@intel.com --- --- orig/mm/damon/dbgfs.c 2022-08-05 13:35:54.416831666 -0400 +++ new/mm/damon/dbgfs.c 2022-08-05 13:44:25.121849930 -0400 @@ -721,6 +721,9 @@ static int dbgfs_mk_context(char *name) return -ENOENT; new_dir =3D debugfs_create_dir(name, root); + if (IS_ERR(new_dir)) { + return PTR_ERR(new_dir); + } dbgfs_dirs[dbgfs_nr_ctxs] =3D new_dir; new_ctx =3D dbgfs_new_ctx(); --_000_DM6PR11MB39782C920CFA9E25594EF9D59C679DM6PR11MB3978namp_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

damon dbgfs_mk_context() does not handle error from = debugfs_create_dir() correctly.

 

For example, if one tries to create a context with e= xisting name, debugfs_create_dir() fails

with -EEXIST, but dbgfs_mk_context() assumes the cal= l is successful and adds another entry - which

will cause failures when try to enable the monitor.<= o:p>

 

Test case:

 

echo "off" >  /sys/kernel/debug/da= mon/monitor_on

echo "abc" > /sys/kernel/debug/damon/mk= _context

echo "abc" > /sys/kernel/debug/damon/mk= _context

echo <pid> > /sys/kernel/debug/damon/target= _ids

echo "on" > /sys/kernel/debug/damon/mon= itor_on  <<< fails to enable monitor

 

 

Signed-off-by: Badari Pulavarty badari.pulavarty@intel.com

---

--- orig/mm/damon/dbgfs.c    &nb= sp;  2022-08-05 13:35:54.416831666 -0400

+++ new/mm/damon/dbgfs.c    &nbs= p;   2022-08-05 13:44:25.121849930 -0400

@@ -721,6 +721,9 @@ static int dbgfs_mk_context(char= *name)

        &nbs= p;       return -ENOENT;

 

        new_dir = =3D debugfs_create_dir(name, root);

+       if (IS_ERR(new= _dir)) {

+        &nb= sp;      return PTR_ERR(new_dir);

+       }

        dbgfs_dir= s[dbgfs_nr_ctxs] =3D new_dir;

 

        new_ctx = =3D dbgfs_new_ctx();

--_000_DM6PR11MB39782C920CFA9E25594EF9D59C679DM6PR11MB3978namp_--