From owner-freebsd-hackers@FreeBSD.ORG Sat Apr 7 21:17:12 2012 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AF890106566C for ; Sat, 7 Apr 2012 21:17:12 +0000 (UTC) (envelope-from ivoras@gmail.com) Received: from mail-gy0-f182.google.com (mail-gy0-f182.google.com [209.85.160.182]) by mx1.freebsd.org (Postfix) with ESMTP id 6F44A8FC15 for ; Sat, 7 Apr 2012 21:17:12 +0000 (UTC) Received: by ghrr20 with SMTP id r20so1872856ghr.13 for ; Sat, 07 Apr 2012 14:17:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:from:date:x-google-sender-auth:message-id :subject:to:content-type; bh=sls/5b9UwPi3UWoRg51HmgiUshuXDoVslJkS5JudoqM=; b=gUcv2NoRzYCTX0S/nVuxyAx8v9ZweN1ScXUlp5/gjzroGfzR16Jz4vcdhvtMm1SRvB Cc/XkNFT76VbMNl7UmWI3bMYN3POiBZSn599tyIwaLjpOVJEVXtan0sDaiydb9WSjKno C/eAYEay+KMQwO1+pfJ9UTuXhGlviY8U9NnB7gfZfwQq81ufAyMZJaebv4BeuRA8Mwda Iy3UrJ3JVkCwcah2HAyOjgx73dkjHu+aBcVCRP4pnlabX21NjJ5vW2dRMKyXAqxRNyor u4qe8f0mj8Ex6Z4s+Iu6QYnUNcbMe0TZOdkM2KWu0AiFJIr5JGt9pahb5Mnixc5ZwgK0 a4gg== Received: by 10.101.165.33 with SMTP id s33mr593065ano.70.1333833432036; Sat, 07 Apr 2012 14:17:12 -0700 (PDT) MIME-Version: 1.0 Sender: ivoras@gmail.com Received: by 10.100.3.20 with HTTP; Sat, 7 Apr 2012 14:16:31 -0700 (PDT) From: Ivan Voras Date: Sat, 7 Apr 2012 23:16:31 +0200 X-Google-Sender-Auth: pgJWzIusehvSlZ0rXm5ZGpZMo8o Message-ID: To: freebsd-hackers Content-Type: text/plain; charset=UTF-8 Subject: Socket buffer usage X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Apr 2012 21:17:12 -0000 Hi, I'm tracking down an obscure bug in my userland program and it might have something to do with the way I write&read data through a (Unix domain) socket. I'm setting SO_SNDBUF and SO_RCVBUF, and what I'm looking for is some way to query the amount of TX & RX buffered / free data on a socket. Is there something I can use? I'll even accept inspecting kernel structures if explained in detail and can be done on a running system. Alternatively, is there anything else which could cause poll(2) with POLLOUT on a socket to return no events ready on such a socket? (my expectation being that a socket is always ready to be written to if there is buffer space free...).