From nobody Mon Jul 17 17:54:14 2023 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4R4V8J329Rz4nf5F; Mon, 17 Jul 2023 17:54:24 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4R4V8H6JChz3CsL; Mon, 17 Jul 2023 17:54:23 +0000 (UTC) (envelope-from kostikbel@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.17.1/8.17.1) with ESMTPS id 36HHsETM013111 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Mon, 17 Jul 2023 20:54:17 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua 36HHsETM013111 Received: (from kostik@localhost) by tom.home (8.17.1/8.17.1/Submit) id 36HHsEki013110; Mon, 17 Jul 2023 20:54:14 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Mon, 17 Jul 2023 20:54:14 +0300 From: Konstantin Belousov To: Warner Losh Cc: John Baldwin , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 60381fd1ee86 - main - memdesc: Retire MEMDESC_CCB. Message-ID: References: <202307141841.36EIf3f0019403@gitrepo.freebsd.org> <65d7d8d8-9f98-abd2-1ce3-ae3a2d3bf111@FreeBSD.org> List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=4.0.0 X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-14) on tom.home X-Rspamd-Queue-Id: 4R4V8H6JChz3CsL X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:6939, ipnet:2001:470::/32, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-ThisMailContainsUnwantedMimeParts: N On Mon, Jul 17, 2023 at 11:29:20AM -0600, Warner Losh wrote: > On Mon, Jul 17, 2023 at 11:15 AM John Baldwin wrote: > > > On 7/17/23 8:48 AM, Konstantin Belousov wrote: > > > On Fri, Jul 14, 2023 at 06:41:03PM +0000, John Baldwin wrote: > > >> The branch main has been updated by jhb: > > >> > > >> URL: > > https://cgit.FreeBSD.org/src/commit/?id=60381fd1ee8668ea1e4676a6128883d987cab858 > > >> > > >> commit 60381fd1ee8668ea1e4676a6128883d987cab858 > > >> Author: John Baldwin > > >> AuthorDate: 2023-07-14 18:30:31 +0000 > > >> Commit: John Baldwin > > >> CommitDate: 2023-07-14 18:32:16 +0000 > > >> > > >> memdesc: Retire MEMDESC_CCB. > > >> > > >> Instead, change memdesc_ccb to examine the CCB and return a > > memdesc of > > >> a more generic type describing the data buffer. > > > > > >> diff --git a/sys/kern/subr_bus_dma.c b/sys/kern/subr_bus_dma.c > > >> index 65a08aeba17c..bfaad30b37d3 100644 > > >> --- a/sys/kern/subr_bus_dma.c > > >> +++ b/sys/kern/subr_bus_dma.c > > >> @@ -304,94 +304,6 @@ bus_dmamap_load_ma_triv(bus_dma_tag_t dmat, > > bus_dmamap_t map, > > >> @@ -566,49 +478,18 @@ bus_dmamap_load_ccb(bus_dma_tag_t dmat, > > bus_dmamap_t map, union ccb *ccb, > > >> + mem = memdesc_ccb(ccb); > > >> + return (bus_dmamap_load_mem(dmat, map, &mem, callback, > > callback_arg, > > >> + flags)); > > >> } > > > This makes kernel not linkable if CAM is not included into it. > > > > Hmmm, ok. I can either move the memdesc_ccb routine into sys/kern > > somewhere > > (like the kern_memdesc.c file in my other pending review), or we can #ifdef > > this function. It probably doesn't make sense to have a > > bus_dmamap_load_ccb > > if you don't have CAM, so I think I prefer the second option. > > > > MINIMAL doesn't have CAM configured, but it is loadable as a module. > > I'd think we'd want a dummy one fo these with weak symbol binding and have > the actual > one live in cam somewhere that overrides this symbol. The symbol resolution does not work this way in kernel. And it cannot made working this way even in theory, because cam.ko is loadable at runtime. I believe the only feasible solution is to move memdesc_ccb() into kernel unconditionally. > > I just hit this in building MINIMAL for other reasons....