Re: vmmap replacement -- please test

2012-02-17 Thread Anton Maksimenkov
Hello. I want to ask you about vmmap changes introduced here and in your presentation http://openbsd.org/papers/tdose_memalloc/presentation.html 1. http://openbsd.org/papers/tdose_memalloc/presentation.html#%2816%29 "Browsers, java & mono breakage" You pointed to some buggy software. If I underst

Re: diff: get rid the "out of static map entries" problem

2011-04-19 Thread Anton Maksimenkov
2011/4/19 Ariane van der Steldt : > You now have feedback. People don't like your diff, told you why. You > now have options: > You didn't get negative feedback on the reserved entry. It works for > your map, maybe it'll also work for the kernel_map? Most comments here > are against the kentry map.

Re: diff: get rid the "out of static map entries" problem

2011-04-18 Thread Anton Maksimenkov
2011/4/19 Ariane van der Steldt : > Your diff is reducable to: > static struct vm_map_entry kentries[REALLY_BIG_NUMBER]; > And then managing that memory using vmmap. Yes, more or less... But your example eats VA memory and physical pages immediately and forever, while my diff tried to eat it on d

Re: diff: get rid the "out of static map entries" problem

2011-04-17 Thread Anton Maksimenkov
2011/4/18 Ted Unangst : > +if (uvm.numof_free_kentries < 1) /*check to be safe*/ > +panic("uvm.numof_free_kentries[%d] < 1\n", uvm.numof_free_kentries); >>> This diff would take us back to the bad old days when running out of entries led >>> to a panic. >> Totally conversely. As It was

Re: diff: get rid the "out of static map entries" problem

2011-04-16 Thread Anton Maksimenkov
2011/4/17 Ted Unangst : >> This kentry_map must be used only for kentries allocation. Since all > This really isn't that much different than the static entries we have > now. You are pre-reserving them. No. Now, we have to trust to kmthread to preallocate pages. It is not possible to predict when

Re: Use km_alloc instead of the single page allocator

2011-04-05 Thread Anton Maksimenkov
2011/4/5 Anton Maksimenkov : > I have some idea related to allocator for (! __HAVE_PMAP_DIRECT) case. ... > My idea is how to resolve that loop by another way. > We must keep track the number of free kentries. And when we see, in > uvm_mapent_alloc(), that there is only 1 kentry rem

Re: Use km_alloc instead of the single page allocator

2011-04-05 Thread Anton Maksimenkov
2011/4/5 Artur Grabowski : > - Use km_alloc for all backend allocations in pools. > - Use km_alloc for the emergmency kentry allocations in uvm_mapent_alloc > - Garbage collect uvm_km_getpage, uvm_km_getpage_pla and uvm_km_putpage I have some idea related to allocator for (! __HAVE_PMAP_DIRECT)

Re: bug in COM-port subsystem

2011-03-14 Thread Anton Maksimenkov
2011/3/11 Anton Maksimenkov : >> If some process can catch COM port in a way that noone can use the >> port and noone can kill that process - it is wrong situation. I think this would be a little bit better: --- /usr/origsrc/sys/kern/tty.c Mon Oct 11 22:20:15 2010 +++ /usr/src/sy

diff which make vte(4) work, please test

2011-03-11 Thread Anton Maksimenkov
Hi. If someone has te vte (r6040 chip) network interface please, test this diff. It solves problems like these: > First, it seems that dhclient don't work on vte. > Second, it seems vte looses network after minute(s) of inactivity > (machine don't responds to ping etc). > Network restores when I ty

Re: bug in COM-port subsystem

2011-03-10 Thread Anton Maksimenkov
2011/3/11 Anton Maksimenkov : > If some process can catch COM port in a way that noone can use the > port and noone can kill that process - it is wrong situation. And here is the quick path which solves the problem: --- /usr/origsrc/sys/kern/tty.c Mon Oct 11 22:20:15 2010 +++ /usr/src/sy

Re: bug in COM-port subsystem

2011-03-10 Thread Anton Maksimenkov
2011/3/11 Amit Kulkarni : > I tried to do a similar thing, Ctrl + C on a fsck, kill -9 the fsck > pid. But the process is not able to be killed. Finally found out that > I/O stuff can't be killed in OpenBSD. Since you do I/O to COM port, > and try to kill it... I don't know if its a bug though. An

bug in COM-port subsystem

2011-03-10 Thread Anton Maksimenkov
Hi. It seems I catched some bug in kernel. I use some ugly program which connects to COM-port and tries to do some activity. You can see it's source here http://pastebin.com/kHLy26GD I start it and try to kill it # ./ct writing bytes 36[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ff

tiny imsg_init(3) correction in EXAMPLES

2011-03-04 Thread Anton Maksimenkov
Hi. I found that manpage for imsg-family have a little mistake: ... if (msgbuf_write(ibuf->w) < 0) { ... It seems it should be: if (msgbuf_write(&ibuf->w) < 0) { -- antonvm

Re: hangs on reboot

2011-03-01 Thread Anton Maksimenkov
> I have SoC machine (dmesg below) which hangs on reboot in most cases. It seems that the problem was resolved by just commenting "KBC_PULSE0" related case in cpu_reset() and machine successfuly rebooted by "triple fault and watchdog reset" bits (follow just after). Should we think about sysctl to

hangs on reboot

2011-02-28 Thread Anton Maksimenkov
Hello. I have SoC machine (dmesg below) which hangs on reboot in most cases. Serial console shows this: login: /etc/rc.shutdown in progress... stopping local daemons:. Rsyncing disks... omplete. then: Rsyncing disks... doneete. rebooting... and then it hangs. It hangs here almost 100% if serial c

Re: re(4)/atom freezes (was Re: [SOLVED] Re: OpenBSD 4.8 freezes on certain activities)

2010-11-12 Thread Anton Maksimenkov
2010/11/12 Stuart Henderson : > In my case: system just appears to freeze, no response to numlock > etc, cannot enter DDB (typing blind as I'm generally in X and > the machine has no serial port, but no response to ctrl-alt-esc > followed by boot r). May be that problem http://marc.info/?l=openbs

Re: some cleanup of of uvm_map.c

2010-04-22 Thread Anton Maksimenkov
So, can I remind this simple cleanup? 2010/1/31 Anton Maksimenkov : > Here is some cleanup of uvm_map.c code. > > At first, in uvm_map_advice() function. > Let it looks as simple as uvm_map_inherit() - no need to lock/unlock map > just to realize that sanity check fail. Also no n

Re: uvm_map improvements

2010-03-04 Thread Anton Maksimenkov
Since I not found any support of that idea I think it is better to keep things simple. So I introduce implementation of the "ReScan" idea. The diff must be almost the same as in the first message in thread. I added some logic into uvm_map_findspace(). If it can't found reasonable gap using hint it

Re: uvm_map improvements

2010-02-27 Thread Anton Maksimenkov
2010/2/26 Anton Maksimenkov : > The idea might be like this. We don't use uvm_map_hint(). In > uvm_map_findspace() we get entry with biggest space. Then we generate > random from range 0...MIN(space-length, 256M). Then we search first > entry with space >= length+that_random.

Re: uvm_map improvements

2010-02-26 Thread Anton Maksimenkov
2010/2/26 Anton Maksimenkov : > *result = entry->start + that_random; ur-r-r-gh *result = entry->end + that_random; -- antonvm

Re: uvm_map improvements

2010-02-26 Thread Anton Maksimenkov
2010/2/26 Anton Maksimenkov : >> + ReScan: It might be better solution. As I said to art@, we might generate random exactly in uvm_map_findspace(). The idea might be like this. We don't use uvm_map_hint(). In uvm_map_findspace() we get entry with biggest space. Then we generate random

Re: uvm_map improvements

2010-02-26 Thread Anton Maksimenkov
> + int try_rescan = 0; Oh my mistake, sorry. It was so quick draft... Of course try_rescan must be not 0 before the first scan: try_rescan = 1; > + ReScan: > tmpsearch.space = length; > tmp = RB_NFIND(uvm_tree_space, &map->rb_space, &tmpsearch); > if (tmp == NULL)

Re: uvm_map improvements

2010-02-26 Thread Anton Maksimenkov
be. But what about this: 2010/2/26 Otto Moerbeek : > On Fri, Feb 26, 2010 at 10:58:09AM +0500, Anton Maksimenkov wrote: >> I think that if uvm_map_findspace() can't find space from "hint" then >> it must retry searching _without_ hint (say, setting it to >> ma

Re: uvm_map improvements

2010-02-25 Thread Anton Maksimenkov
2010/2/26 Otto Moerbeek : >> 2. ... >> I think that we may introduce some variable - sysctl variable or >> malloc.conf flag - which will prevent sys_mmap() or uvm_map_hint() > If fragmentation really is a problem for you, my first reaction is: > use a machine with a bigger adress spacce. No deal.

Re: uvm_map improvements

2010-02-25 Thread Anton Maksimenkov
2010/2/20 Anton Maksimenkov : > it was started discussion about uvm_map.c improvements. I prepared the > diff and trying to explain it. In addition to that diff I want to discuss two problems. 1. AFAIK, the userspace malloc() uses mmap (sys_mmap) to do it's job. As we can see, sys_

uvm_map improvements

2010-02-20 Thread Anton Maksimenkov
Hi. In this thread http://marc.info/?l=openbsd-tech&m=126494185625212&w=2 it was started discussion about uvm_map.c improvements. I prepared the diff and trying to explain it. First, I introduce 2 trees here: - uvm_tree_start, the RB_TREE indexed by entry's "start" - uvm_tree_space, the RB_TREE

Re: little cp diff

2010-02-07 Thread Anton Maksimenkov
2010/2/8 Theo de Raadt : > For those of you who asked why cp needs to be portable, come on. > You've got it all wrong. If cp isn't written in a portable fashion, > then what is the point of doing anything else in a portable fashion. This is good and reasonable answer. So I think we should stop di

Re: little cp diff

2010-02-07 Thread Anton Maksimenkov
2010/2/7 Ted Unangst : >> But using sysctl is insane. That is not portable. > Why does cp need to be portable? Who's porting OpenBSD cp to other systems? Good question. -- antonvm

Re: UBC?

2010-02-05 Thread Anton Maksimenkov
2010/2/6 Jeff Ross : > When I set shared_buffers to slightly less than 1/4 of my system ram I > started this whole round of system panics and reports because in order to > get postgres to start I then had to crank kern.shminfo.shmmax to 1GB, and > that would trigger a panic very quickly under load.

Re: UBC?

2010-02-04 Thread Anton Maksimenkov
2010/2/5 Anton Maksimenkov : > set chared buffers to something not so big... say, 256Mb or so (I just I misprint. Of course it's "shared", not "chared. Sorry. -- antonvm

Re: UBC?

2010-02-04 Thread Anton Maksimenkov
2010/2/5 Ted Unangst : > On Thu, Feb 4, 2010 at 2:21 PM, Jeff Ross wrote: >> kern.shminfo.shmall=512000 >> kern.shminfo.shmmax=76800 > > Oh, when I said it was safe to crank shmmax I didn't know you'd be > setting the bufcache to huge numbers too. ;) Furthermore, postgres documentation recom

Re: some cleanup of of uvm_map.c

2010-02-04 Thread Anton Maksimenkov
2010/2/3 Owain Ainsworth : > ...you can't just go straight to the start of the map. > Say i386 where W^X is done using segments. if you dump > something right at the other end of the segment, that pretty much screws > it. Perhaps going back to the min hint for the protection and trying to > push ju

Re: some cleanup of of uvm_map.c

2010-02-03 Thread Anton Maksimenkov
2010/2/3 Ariane van der Steldt : > On Tue, Feb 02, 2010 at 01:21:55AM +0500, Anton Maksimenkov wrote: >> uvm_map_lookup_entry()... in uvm_map_findspace()... > > I'm pretty sure that function is bugged: I think it doesn't do > wrap-around on the search for an entry.  &

Re: some cleanup of of uvm_map.c

2010-02-01 Thread Anton Maksimenkov
2010/2/2 Anton Maksimenkov : > Overcomplicated using of RB_TREE in uvm_map_lookup_entry() making it > hard to understand. > I thinking about drop this RB_TREE out from uvm_map.c or completely > rewrite using of this RB_TREE. Oh, sorry, I mean "in uvm_map_findspace

Re: some cleanup of of uvm_map.c

2010-02-01 Thread Anton Maksimenkov
2010/2/1 Bob Beck : > On 31 January 2010 05:43, Anton Maksimenkov wrote: >> Second, remove redundant "temp_entry" variable from both functions. >> One "entry" variable is enough to do the job. > I don't think you want to do that.. uvm_map_lookup_entry

some cleanup of of uvm_map.c

2010-01-31 Thread Anton Maksimenkov
Here is some cleanup of uvm_map.c code. At first, in uvm_map_advice() function. Let it looks as simple as uvm_map_inherit() - no need to lock/unlock map just to realize that sanity check fail. Also no need to do it in every loop. Second, remove redundant "temp_entry" variable from both functions.

Re: Need help with PF code

2009-05-31 Thread Anton Maksimenkov
2009/5/30 Henning Brauer : > * Anton Maksimenkov [2009-05-30 07:58]: >> In the last stage I want implement automatically creation of subqueues >> by using some keyword for parent queue. For example: > I don't think that is the right approach. If so, isn't it ugly to

Re: Need help with PF code

2009-05-30 Thread Anton Maksimenkov
> Now I want to start from another side. I want make pfctl to create > child queues automatically, using config like this: > altq on $ext_if cbq bandwidth 100Mb queue { std, pq } > queue std bandwidth 98Mb cbq(default, borrow) > queue pq bandwidth 1024Kb cbq spray_child 4 Oh, I forgot the rule:

Re: Need help with PF code

2009-05-30 Thread Anton Maksimenkov
Ok, maybe I was far from current state of PF rules... Let's do step by step. For start discussion I will use this more or less real example: altq on $ext_if cbq bandwidth 100Mb queue { std, pq } queue std bandwidth 98Mb cbq(default, borrow) queue pq bandwidth 1024Kb cbq { pq_1, pq_2, pq_3, pq_4

Re: Need help with PF code

2009-05-29 Thread Anton Maksimenkov
>> I need some help with my idea about PF. >> So, assume that we want to assign all packets passed that rule to one >> of _subqueues_ of "pq" queue. Not to "pq" itself. That assignment must >> be based on packet's destination IP address, so packets to 192.168.0.1 >> must be assigned to "pq_1" queue

Need help with PF code

2009-05-29 Thread Anton Maksimenkov
I need some help with my idea about PF. I want to implement idea based on freebsd's ipfw "mask dst-ip" feature. Lets assume that we have some altq rules like this: altq on $if cbq bandwidth 100Mb queue { std, ..., pq } queue ... queue pq bandwidth ... priority 1 cbq { pq_1, pq_2, pq_3,...}