linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC 0/3] mac80211 powersave improvements
@ 2009-04-15 17:10 Johannes Berg
  2009-04-15 17:10 ` [RFC 1/3] mac80211: improve powersave implementation Johannes Berg
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Johannes Berg @ 2009-04-15 17:10 UTC (permalink / raw)
  To: linux-wireless

Hi,

This series contains the following:

 1) improve powersave to only allow it when a single
    managed interface is active

 2) disable PS when the maximum networking latency
    applications are are willing to put up with is
    smaller than the beacon interval -- in that case
    we cannot allow the AP to buffer frames

 3) enable powersave by default

The last part might be controversial?

Should we have a default setting for the dynamic PS
timeout?

Oh also -- below is a small program to play with the
pm_qos framework, feel free to rip it for anything.

johannes

/*
 * Copyright 2009 Johannes Berg <johannes@sipsolutions.net>
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 *
 *
 * Compile simply with:
 *	cc -o netlatency netlatency.c
 */

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char **argv)
{
	int32_t v;
	int fd;

	if (argc != 2) {
		fprintf(stderr, "Usage: %s <latency [us]>\n", argv[0]);
		fprintf(stderr, "\n");
		fprintf(stderr, "	latency: the maximum tolerable network latency you\n");
		fprintf(stderr, "	         are willing to put up with [in microseconds]\n");
		fprintf(stderr, "\n");
		fprintf(stderr, "This program will block until you hit Ctrl-C, at which point\n");
		fprintf(stderr, "the file descriptor is closed and the latency requirement is\n");
		fprintf(stderr, "unregistered again.\n");
		return 2;
	}

	v = atoi(argv[1]);

	printf("setting latency to %d.%.6d seconds\n", v/1000000, v % 1000000);

	fd = open("/dev/network_latency", O_WRONLY);
	if (fd < 0) {
		perror("open /dev/network_latency");
		return 1;
	}
	if (write(fd, &v, sizeof(v)) != sizeof(v)) {
		perror("write to /dev/network_latency");
		return 1;
	}

	while (1) sleep(10);

	return 0;
}


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2009-04-16 11:11 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-15 17:10 [RFC 0/3] mac80211 powersave improvements Johannes Berg
2009-04-15 17:10 ` [RFC 1/3] mac80211: improve powersave implementation Johannes Berg
2009-04-15 19:38   ` [RFC 1/3 v2] " Johannes Berg
2009-04-16 10:55     ` Kalle Valo
2009-04-15 17:10 ` [RFC 2/3] mac80211: disable powersave if pm_qos asks for low latency Johannes Berg
2009-04-15 19:38   ` [RFC 2/3 v2] " Johannes Berg
2009-04-16 10:58     ` Kalle Valo
2009-04-15 17:10 ` [RFC 3/3] mac80211: enable PS by default Johannes Berg
2009-04-16 10:39   ` [RFC 3/3 v2] " Johannes Berg
2009-04-16 11:01 ` [RFC 0/3] mac80211 powersave improvements Kalle Valo
2009-04-16 11:06   ` Johannes Berg
2009-04-16 11:11     ` Kalle Valo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).