Re: [hybi] frame length encoding

John Tamplin <jat@google.com> Sat, 21 August 2010 20:59 UTC

Return-Path: <jat@google.com>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A59B63A693D for <hybi@core3.amsl.com>; Sat, 21 Aug 2010 13:59:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.172
X-Spam-Level:
X-Spam-Status: No, score=-105.172 tagged_above=-999 required=5 tests=[AWL=0.804, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qYqT4OColyN0 for <hybi@core3.amsl.com>; Sat, 21 Aug 2010 13:59:44 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [74.125.121.35]) by core3.amsl.com (Postfix) with ESMTP id 5A70F3A68CC for <hybi@ietf.org>; Sat, 21 Aug 2010 13:59:44 -0700 (PDT)
Received: from hpaq6.eem.corp.google.com (hpaq6.eem.corp.google.com [172.25.149.6]) by smtp-out.google.com with ESMTP id o7LL0HKG015312 for <hybi@ietf.org>; Sat, 21 Aug 2010 14:00:17 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1282424417; bh=6YIe44uN1Cbg7h1ImSA6BiiviMY=; h=MIME-Version:In-Reply-To:References:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=swywJPypoN/bxsf9n5CB/Y9WRRwUhj0nVWYA5EpLeKe4kRWiYF4mUYWT3ooHtd4kR uRINwycNkd9ACSsNbIVaA==
DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=mime-version:in-reply-to:references:from:date:message-id: subject:to:cc:content-type:x-system-of-record; b=MnT7UnoJ5nDDx8Y7EElK/vRLufCDnADUwltKevwZa6ApTyemrsVNb5n0OZnS7qGhP 9BvdVVRfKJH5YIJ1T0aRw==
Received: from ywi4 (ywi4.prod.google.com [10.192.9.4]) by hpaq6.eem.corp.google.com with ESMTP id o7LL09Vl011867 for <hybi@ietf.org>; Sat, 21 Aug 2010 14:00:11 -0700
Received: by ywi4 with SMTP id 4so1817595ywi.31 for <hybi@ietf.org>; Sat, 21 Aug 2010 14:00:09 -0700 (PDT)
Received: by 10.150.145.5 with SMTP id s5mr1066679ybd.60.1282424409255; Sat, 21 Aug 2010 14:00:09 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.151.60.3 with HTTP; Sat, 21 Aug 2010 13:59:49 -0700 (PDT)
In-Reply-To: <b09e8e740ef2b5b5ec3c85a5d9dcfd08.squirrel@sm.webmail.pair.com>
References: <AANLkTimKbmcpgx8k0uXUWvCO=8w9pPrtV=3y4qh6363k@mail.gmail.com> <alpine.DEB.2.00.1008212037190.27211@tvnag.unkk.fr> <AANLkTinrsT+wV48nHvVW_1ChGYffkq7jisU2-PZnMyKg@mail.gmail.com> <alpine.DEB.2.00.1008212123460.27211@tvnag.unkk.fr> <20ef7ed5e135c57c1ee5a741658b9d98.squirrel@sm.webmail.pair.com> <1282423311.2014.6.camel@tng> <b09e8e740ef2b5b5ec3c85a5d9dcfd08.squirrel@sm.webmail.pair.com>
From: John Tamplin <jat@google.com>
Date: Sat, 21 Aug 2010 16:59:49 -0400
Message-ID: <AANLkTikE8+oEbviWrPO=Pi+=CHSMnCD9KYmH8EMxMktw@mail.gmail.com>
To: shelby@coolpage.com
Content-Type: multipart/alternative; boundary="000e0cd481025d6e6c048e5bb324"
X-System-Of-Record: true
Cc: Hybi <hybi@ietf.org>
Subject: Re: [hybi] frame length encoding
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 21 Aug 2010 20:59:45 -0000

On Sat, Aug 21, 2010 at 4:57 PM, Shelby Moore <shelby@coolpage.com> wrote:

> My understanding is there would be copying, if you read my link again
> carefully:
>
> http://www.ietf.org/mail-archive/web/hybi/current/msg03402.html
>
> The reason is because I understand from what I read at John's links that
> the entire file is contiguous in memory (because it is a memory mapped or
> memory cached copy of the file on the disk), and thus to insert the frame
> headers at the 32bit chunks, you would have to move the entire file
> through the CPU.  Is my understanding incorrect?  Can you simply rewrite
> one sector on disk and the memory manager remaps?


I haven't tried it personally, but I would suspect you could use TCP_CORK,
write a header, use sendfile to send a chunk of the file to finish the
frame, uncork, repeat until done.  I don't think there would be any extra
copying involved here, but you can't just issue the sendfile and go on to
the next message, you need some thread that will queue up the next frame
when it is ready.

-- 
John A. Tamplin
Software Engineer (GWT), Google