From owner-freebsd-current@FreeBSD.ORG Sat Aug 2 10:57:43 2014 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7182D4F5; Sat, 2 Aug 2014 10:57:43 +0000 (UTC) Received: from mail-qa0-x22a.google.com (mail-qa0-x22a.google.com [IPv6:2607:f8b0:400d:c00::22a]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 213F221D1; Sat, 2 Aug 2014 10:57:43 +0000 (UTC) Received: by mail-qa0-f42.google.com with SMTP id j15so5091546qaq.29 for ; Sat, 02 Aug 2014 03:57:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=45i4zSYmoNwbNkkvswWj1t2I+/OpN9kg5cfiDexCQH0=; b=eKvhIfytxkrSrH27fjhng46fvo8Ffo+twmU/G4VIR4X58HkfPxpbek0xWCLmWB/iej SmDj1LmFiqTk8N17M0kVIXhylGWXrVGuwR0GeilxMfBhqsSi5siCrZAwywbkxQb3LT6L v26ReGt4rwjv5yqueG5GU1fWNiRNyjbqegv/5MjdP5CCJqpQKyaIVyZw7odJUnW4lqI/ 1guXHhCChzzIcxj8R4KFlRgbC9HClL9SVn60zXKCUrnVCs3p4UQTVrTqzTuuhJl6XY2V UgwLSwFhBVqKjVvgYdfc4FZlcOWqqFsTbAPCq3sIIznV5OEV8eV5yPNabCYx9acNdia2 k3qQ== X-Received: by 10.224.151.138 with SMTP id c10mr17846672qaw.41.1406977062288; Sat, 02 Aug 2014 03:57:42 -0700 (PDT) MIME-Version: 1.0 Sender: fedor.indutny@gmail.com Received: by 10.96.198.227 with HTTP; Sat, 2 Aug 2014 03:57:22 -0700 (PDT) In-Reply-To: References: From: Fedor Indutny Date: Sat, 2 Aug 2014 14:57:22 +0400 X-Google-Sender-Auth: cfhYyN8lyr7Gq9ZKU2SyABHURpE Message-ID: Subject: Re: KQueue 0-length UDP packet To: freebsd-current@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.18 Cc: Mark Johnston X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Aug 2014 10:57:43 -0000 After reading that line more carefully, I wonder if this behavior is really intentional here. It seems to me that `SO_RCVLOWAT` is supposed to set watermark value in terms of packet data bytes, not just raw packet size. And this is how `NOTE_LOWAT` actually works there, right? Could anyone please comment on this? Is it a bug? ---------------------- Regarding OSX: Submitted Apple Bug # 17894467 , with a patch. If anyone has friends at Apple who could help getting this in, please let me know! Cheers, Fedor. On Sat, Aug 2, 2014 at 2:41 PM, Fedor Indutny wrote: > Guess I know the answer: > > https://cloudup.com/cCkjLhI4M2r > > Basically, OSX is checking `kn_data` and FreeBSD is using > `so->so_rcv.sb_cc`. > > Thank you anyway! > > > On Sat, Aug 2, 2014 at 1:39 PM, Fedor Indutny wrote: > >> Hello! >> >> I'm trying to figure out, why this code: >> >> https://github.com/indutny/0-udp >> >> Which basically sends a 0-length UDP packet to a server and polls >> kqueue events on the server fd. >> >> Return 1 kevent on FreeBSD, and blocks indefinitely without >> returning any events on OSX. >> >> So far I could see that FreeBSD and OSX are treating NOTE_LOWAT >> differently: >> >> * >> https://github.com/opensource-apple/xnu/blob/2fa84067f6cdeb23267f877ca4fd26201316da1b/bsd/kern/uipc_socket.c#L4461 >> * >> https://github.com/freebsd/freebsd/blob/6901832d8588537c81afbdb91d1a22deb5582c47/sys/kern/uipc_socket.c#L3163-L3164 >> >> FreeBSD's NOTE_LOWAT is overriding SO_RCVLOWAT, and OSX is using >> SO_RVCLOWAT as a minimum value. But, since NOTE_LOWAT is not >> involved here by default, I'm failing to see where exactly this >> event could pass through kqueue filter. >> >> Could anyone with UDP and/or KQueue implementation knowledge >> share some insights with me? >> >> Thank you very much! >> Fedor. >> >> (NOTE: Duplicate, first email wasn't posted, because I wasn't subscribed >> to the ML) >> > >