From owner-svn-src-all@freebsd.org Sun Sep 20 04:17:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 323583FBD27; Sun, 20 Sep 2020 04:17:33 +0000 (UTC) (envelope-from xxjack12xx@gmail.com) Received: from mail-qt1-x844.google.com (mail-qt1-x844.google.com [IPv6:2607:f8b0:4864:20::844]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4BvDn76qJnz4154; Sun, 20 Sep 2020 04:17:31 +0000 (UTC) (envelope-from xxjack12xx@gmail.com) Received: by mail-qt1-x844.google.com with SMTP id b2so9366302qtp.8; Sat, 19 Sep 2020 21:17:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=kEIV8uD9zw32JGltnrzj4dmyVn7YVsJoePvv4i5yPuA=; b=YArRdV9kk5nEgb5KlYj1yTAfHPlkKrcK8MCBSYYg+ml2fyd1GwSCGq2qKCm7XDqH7+ RlyrW+lkqQK0CM3h+cqCx7ibYiC1lrURfDx5xccGMftZMAC2LoN0dXiwZLqdDqpDDBZZ Zcsp6AfdV7HOnZ+nMaQ923XmqCsBLPWyr6tCKOrXZ66FCekejtVinnl2oigjzUW41zJm UnIZI/+hBQUpAceazO+Bse9e472mlepla+BXkHpBPb7BR1cwTNiI9wC1XlwcwnHxn4ty K841GwusQfsFs6+dKNQfaQvZPl557RxQpmWCdyQwKmef20roPWCqZR5HBNSqsM1AQPKG BP/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=kEIV8uD9zw32JGltnrzj4dmyVn7YVsJoePvv4i5yPuA=; b=HO1ww3H1RJUTD7Py8TIgp6XuuiJUa995w4mF8lOnDMGJupFsVb7vzV8meiRj3NGFJQ yS0wcTvgXFvY9Lz0LdUhPvP0hUQsbeFp8O/YsBv3t2HocdipRSgtCVBR0BxqcDQaCx3y jdaZ2m4UkBPTdSQVvFRKMPEzdBYFPoCnbb/4cgTfPscJ8nIoQD3o0OGfiaUvSdwV1v9L 3/eoUBrsFU6VtITZ55LXXIwm5kblotD0dsyoW12LtMTgFh8NfKvMxrUpA14f1hu9bAW5 u1ptYodQMMXE76TIhQA3YBDHEgTEqITWmPBBVLmfeSAEvboii87OwLT08269Ls05iqPT er/A== X-Gm-Message-State: AOAM530/A4Xwo2MrI3/kkDGJ13oWGdI2/dAaDWUHlxoYqdnLpDmUK6N+ RIXZrZ2qqhCyHXuDaN6B64DxVJDwzsYupGqX0TZwvY4zS6OMpw== X-Google-Smtp-Source: ABdhPJy6MCj7nUlIphOSxwSM6OyxF2yg2P3+9fGihNMsmUMmkspvazbFYfwLwY7/IlMvvZoS2MA5tCPxaX9jkZ1hFhQ= X-Received: by 2002:ac8:23a3:: with SMTP id q32mr40674566qtq.361.1600575450787; Sat, 19 Sep 2020 21:17:30 -0700 (PDT) MIME-Version: 1.0 References: <202009161420.08GEKj4d056054@repo.freebsd.org> In-Reply-To: <202009161420.08GEKj4d056054@repo.freebsd.org> From: "Jack L." Date: Sat, 19 Sep 2020 21:16:54 -0700 Message-ID: Subject: Re: svn commit: r365800 - in stable/12/sys: sys vm To: Konstantin Belousov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 4BvDn76qJnz4154 X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=YArRdV9k; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of xxjack12xx@gmail.com designates 2607:f8b0:4864:20::844 as permitted sender) smtp.mailfrom=xxjack12xx@gmail.com X-Spamd-Result: default: False [-3.51 / 15.00]; RCVD_TLS_ALL(0.00)[]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; NEURAL_HAM_MEDIUM(-0.98)[-0.980]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; NEURAL_HAM_LONG(-1.03)[-1.032]; RCPT_COUNT_FIVE(0.00)[5]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::844:from]; NEURAL_HAM_SHORT(-0.50)[-0.500]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_COUNT_TWO(0.00)[2]; MAILMAN_DEST(0.00)[svn-src-all,svn-src-stable,svn-src-stable-12]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Sep 2020 04:17:33 -0000 I'm getting a kernel panic on this revision on 12.2-STABLE after updating to this revision on a Dell system. I have options RACCT disabled in the kernel config. Would that be causing it to panic? Trying to recompile the system with various revisions to make sure this is the problem commit but also want to make sure it isn't because I've disabled RACCT. On Wed, Sep 16, 2020 at 7:20 AM Konstantin Belousov wrote: > > Author: kib > Date: Wed Sep 16 14:20:45 2020 > New Revision: 365800 > URL: https://svnweb.freebsd.org/changeset/base/365800 > > Log: > MFC r365486: > Add kern_mmap_racct_check(), a helper to verify limits in vm_mmap*(). > > Modified: > stable/12/sys/sys/syscallsubr.h > stable/12/sys/vm/vm_mmap.c > Directory Properties: > stable/12/ (props changed) > > Modified: stable/12/sys/sys/syscallsubr.h > ============================================================================== > --- stable/12/sys/sys/syscallsubr.h Wed Sep 16 14:16:09 2020 (r365799) > +++ stable/12/sys/sys/syscallsubr.h Wed Sep 16 14:20:45 2020 (r365800) > @@ -62,6 +62,7 @@ struct sockaddr; > struct stat; > struct thr_param; > struct uio; > +struct vm_map; > > typedef int (*mmap_check_fp_fn)(struct file *, int, int, int); > > @@ -185,6 +186,8 @@ int kern_mmap(struct thread *td, uintptr_t addr, size_ > int kern_mmap_fpcheck(struct thread *td, uintptr_t addr, size_t len, > int prot, int flags, int fd, off_t pos, > mmap_check_fp_fn check_fp_fn); > +int kern_mmap_racct_check(struct thread *td, struct vm_map *map, > + vm_size_t size); > int kern_mprotect(struct thread *td, uintptr_t addr, size_t size, int prot); > int kern_msgctl(struct thread *, int, int, struct msqid_ds *); > int kern_msgrcv(struct thread *, int, void *, size_t, long, int, long *); > > Modified: stable/12/sys/vm/vm_mmap.c > ============================================================================== > --- stable/12/sys/vm/vm_mmap.c Wed Sep 16 14:16:09 2020 (r365799) > +++ stable/12/sys/vm/vm_mmap.c Wed Sep 16 14:20:45 2020 (r365800) > @@ -1457,6 +1457,39 @@ vm_mmap(vm_map_t map, vm_offset_t *addr, vm_size_t siz > return (error); > } > > +int > +kern_mmap_racct_check(struct thread *td, vm_map_t map, vm_size_t size) > +{ > + int error; > + > + RACCT_PROC_LOCK(td->td_proc); > + if (map->size + size > lim_cur(td, RLIMIT_VMEM)) { > + RACCT_PROC_UNLOCK(td->td_proc); > + return (ENOMEM); > + } > + if (racct_set(td->td_proc, RACCT_VMEM, map->size + size)) { > + RACCT_PROC_UNLOCK(td->td_proc); > + return (ENOMEM); > + } > + if (!old_mlock && map->flags & MAP_WIREFUTURE) { > + if (ptoa(pmap_wired_count(map->pmap)) + size > > + lim_cur(td, RLIMIT_MEMLOCK)) { > + racct_set_force(td->td_proc, RACCT_VMEM, map->size); > + RACCT_PROC_UNLOCK(td->td_proc); > + return (ENOMEM); > + } > + error = racct_set(td->td_proc, RACCT_MEMLOCK, > + ptoa(pmap_wired_count(map->pmap)) + size); > + if (error != 0) { > + racct_set_force(td->td_proc, RACCT_VMEM, map->size); > + RACCT_PROC_UNLOCK(td->td_proc); > + return (error); > + } > + } > + RACCT_PROC_UNLOCK(td->td_proc); > + return (0); > +} > + > /* > * Internal version of mmap that maps a specific VM object into an > * map. Called by mmap for MAP_ANON, vm_mmap, shm_mmap, and vn_mmap. > @@ -1466,39 +1499,15 @@ vm_mmap_object(vm_map_t map, vm_offset_t *addr, vm_siz > vm_prot_t maxprot, int flags, vm_object_t object, vm_ooffset_t foff, > boolean_t writecounted, struct thread *td) > { > - boolean_t curmap, fitit; > vm_offset_t max_addr; > int docow, error, findspace, rv; > + bool curmap, fitit; > > curmap = map == &td->td_proc->p_vmspace->vm_map; > if (curmap) { > - RACCT_PROC_LOCK(td->td_proc); > - if (map->size + size > lim_cur(td, RLIMIT_VMEM)) { > - RACCT_PROC_UNLOCK(td->td_proc); > - return (ENOMEM); > - } > - if (racct_set(td->td_proc, RACCT_VMEM, map->size + size)) { > - RACCT_PROC_UNLOCK(td->td_proc); > - return (ENOMEM); > - } > - if (!old_mlock && map->flags & MAP_WIREFUTURE) { > - if (ptoa(pmap_wired_count(map->pmap)) + size > > - lim_cur(td, RLIMIT_MEMLOCK)) { > - racct_set_force(td->td_proc, RACCT_VMEM, > - map->size); > - RACCT_PROC_UNLOCK(td->td_proc); > - return (ENOMEM); > - } > - error = racct_set(td->td_proc, RACCT_MEMLOCK, > - ptoa(pmap_wired_count(map->pmap)) + size); > - if (error != 0) { > - racct_set_force(td->td_proc, RACCT_VMEM, > - map->size); > - RACCT_PROC_UNLOCK(td->td_proc); > - return (error); > - } > - } > - RACCT_PROC_UNLOCK(td->td_proc); > + error = kern_mmap_racct_check(td, map, size); > + if (error != 0) > + return (error); > } > > /* > _______________________________________________ > svn-src-all@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-all > To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"